Submission #421132

#TimeUsernameProblemLanguageResultExecution timeMemory
421132daanolavArranging Shoes (IOI19_shoes)C++14
10 / 100
1 ms204 KiB
#include "shoes.h" #include <vector> #include <bitset> #include <tuple> #include <cmath> using namespace std; typedef vector<int> vi; typedef pair<vi,bool> vib; int n,num,shoeSize,index,first,second; long long count_swaps(std::vector<int> s) { n = s.size() / 2; vib sizes[n + 1]; long long swapsNeeded = 0; for(index = 0; index < 2 * n; ++index) { num = s[index]; //cerr << "shoe num " << index << " is " << num << endl; shoeSize = abs(num); if(sizes[shoeSize].first.size() == 0) { sizes[shoeSize].first.push_back(index); sizes[shoeSize].second = num > 0; } else if((num > 0) == sizes[shoeSize].second) { sizes[shoeSize].first.push_back(index); } else { first = num < 0 ? index : sizes[shoeSize].first[0]; second = num > 0 ? index : sizes[shoeSize].first[0]; if(second > first) { swapsNeeded += second - first - 1; } else { swapsNeeded += first - second; } sizes[shoeSize].first.erase(sizes[shoeSize].first.begin()); } } return swapsNeeded; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...