int main() { // Taking input of number of testcases to be solved. uint32_t testcases = g_fi.ReadNext(); //Loop to go through process number of testcases time. for (uint32_t i = 0; i < testcases; ++i) { // This map will hold the level wise total score of soint. map<int,int> sointlevelscore; // This map will hold the level wise total score of sofloat. map<int,int> sofloatlevelscore; // Inputing number of Warriers in each team Soint and soFloat uint32_t sointN = g_fi.ReadNext(); uint32_t sofloatM = g_fi.ReadNext(); for ( uint32_t j = 0;j < sointN ; j++ ) { uint32_t chakra = g_fi.ReadNext(); uint32_t level = g_fi.ReadNext(); if (sointlevelscore.find(level) == sointlevelscore.end()) { sointlevelscore[level] = chakra; } else { sointlevelscore[level] = sointlevelscore.find(level)->second + chakra; } } for ( uint32_t j = 0;j < sofloatM ; j++ ) { uint32_t chakra = g_fi.ReadNext(); uint32_t level = g_fi.ReadNext(); if (sofloatlevelscore.find(level) == sofloatlevelscore.end()) { sofloatlevelscore[level] = chakra; } else { sofloatlevelscore[level] = sofloatlevelscore.find(level)->second + chakra; } } int minimumchakra = 0; //To check how much time actual logic takes /* map<int,int>::iterator chakrainterator; for ( chakrainterator = sointlevelscore.begin();chakrainterator != sointlevelscore.end();chakrainterator++) { int score = ( sofloatlevelscore[(*chakrainterator).first] - (*chakrainterator).second ); if ( score > 0 ) { minimumchakra += score; } } */ g_fo.PrintUint(minimumchakra, '\n'); } g_fo.Flush(); return 0; }
int main() { char line[80]; FastOutput output; int nCases; scanf("%d\n", &nCases); //gets(line); //sscanf(line, "%d\n", &nCases); for(int caseNum=1; caseNum<=nCases;caseNum++) { int length; scanf("%d\n", &length); //gets(line); //sscanf(line, "%d\n", &length); nItems = 0; Subset subsets[length+100];//not technically correct? mySubsets = subsets; for(int i=0;i<length;i++) { char *s1 = new char[21]{'\0'}; char *s2 = new char[21]{'\0'}; scanf("%s %s\n", s1,s2); //gets(line); //sscanf(line, "%s %s\n", s1,s2); int index1 = trie.insert(s1); int index2 = trie.insert(s2); //printf ("%d %d\n", index1, index2); Union(index1,index2); output.PrintUint(subsets[find(index1)].total,'\n'); } if (caseNum < nCases) { trie.reset(); } } return 0; }
int main() { readAll(); //printf ("Done = %s\n", A[arrayIndex+1000]); //return 0; clearHashes.reserve(MAX_FRIENDS); int nCases; sscanf(A[arrayIndex++],"%d",&nCases); for(int caseNum=1; caseNum<=nCases;caseNum++) { int length; sscanf(A[arrayIndex++],"%d",&length); newIndex = 0; for(int i=0;i<length+10;i++) { subsets[i].parent=i; subsets[i].total=1; } for(int i=0;i<length;i++) { int index1 = getNewIndex(); int index2 = getNewIndex(); //printf("%d %d\n",index1, index2); Union(index1,index2); output.PrintUint(subsets[find(index1)].total,'\n'); } #ifndef UNORDERED_MAP if (caseNum < nCases) { //reset for(auto &x:clearHashes) { myTable[x].clear(); } } #endif } return 0; }
fo(i, m) { //cout<<ans[i]<<endl; g_fo.PrintUint(ans[i], '\n'); }