Submission #283907

#TimeUsernameProblemLanguageResultExecution timeMemory
283907sofapudenArranging Shoes (IOI19_shoes)C++14
45 / 100
111 ms71676 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; ll count_swaps(vector<int> s) { int n = s.size()/2; vector<pair<int, queue<int>>> v(n+2, {0,{}}); ll ans = 0; int cn = 0; int pairs = 0; for(int i = 0; i < 2*n; ++i){ if(s[i] < 0){ if(v[abs(s[i])].first <= 0){ v[abs(s[i])].second.push(cn); v[abs(s[i])].first = -1; cn++; } else{ auto x = v[abs(s[i])].second.front(); v[abs(s[i])].second.pop(); if(v[abs(s[i])].second.empty()){ v[abs(s[i])].first = 0; } ans+=cn-x; ans+=max(0, x-pairs); pairs++; } } else{ if(v[abs(s[i])].first >= 0){ v[abs(s[i])].second.push(cn); v[abs(s[i])].first = 1; cn++; } else{ auto x = v[abs(s[i])].second.front(); v[abs(s[i])].second.pop(); if(v[abs(s[i])].second.empty()){ v[abs(s[i])].first = 0; } ans+=cn-x-1; ans+=max(0, x-pairs); pairs++; } } } return ans; }
#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...