Submission #1150919

#TimeUsernameProblemLanguageResultExecution timeMemory
1150919danglayloi1Arranging Shoes (IOI19_shoes)C++20
10 / 100
9 ms19040 KiB
#include "shoes.h" #include <bits/stdc++.h> #define ii pair<int, int> #define fi first #define se second #define inf 0x3f3f3f3f3f3f3f3f using namespace std; using ll = long long; const ll mod=1e9+7; const int nx=2e5+5; set<int> l[nx], r[nx]; bool vis[nx]; ll count_swaps(vector<int> a) { ll ans=0; int n=a.size(); for(int i = 0; i <= n; i++) l[i].clear(), r[i].clear(), vis[i]=0; for(int i = 0; i < n; i++) if(a[i]<0) l[-a[i]].insert(i); else r[a[i]].insert(i); for(int i = 0; i < n; i++) { if(vis[i]) continue; int x=abs(a[i]); int pos; if(a[i]<0) pos=*r[x].begin(), r[x].erase(pos), l[x].erase(i); else pos=*l[x].begin(), l[x].erase(pos), ans++, r[x].erase(i); vis[i]=vis[pos]=1; ans+=pos-i-1; } return ans; } // int main() // { // cout<<count_swaps({2, 1, -1, -2}); // }
#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...