Submission #1263745

#TimeUsernameProblemLanguageResultExecution timeMemory
1263745piolkArranging Shoes (IOI19_shoes)C++20
10 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; int64_t count_swaps(vector<int> S){ int n=S.size(); int swaps=0; vector<pair<priority_queue<int,vector<int>,greater<>>,priority_queue<int,vector<int>,greater<>>>> pqs(n+1); vector<bool> skip(n+1); for (int i=0;i<n;i++){ if (S[i]<0){ //.first pqs[S[i]*-1].first.push(i); } else { //.second pqs[S[i]].second.push(i); } } for (int i=0;i<n;i++){ if (skip[i]) continue; int now=i; int next; if (S[i]<0){ next=pqs[S[i]*-1].second.top(); pqs[S[i]*-1].second.pop(); pqs[S[i]*-1].first.pop(); } else { next=pqs[S[i]].first.top(); pqs[S[i]].first.pop(); pqs[S[i]].second.pop(); } skip[now]=true; skip[next]=true; swaps+=next-now-1; if (S[i]>0) swaps++; } return swaps; }
#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...