Submission #156027

#TimeUsernameProblemLanguageResultExecution timeMemory
156027giorgikobArranging Shoes (IOI19_shoes)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; int n,r,pos,l,x; long long ans; std::vector<int>locl[500001],locr[500001],s; int fix[500001]; int indl[500001],indr[500001]; int tree[800001]; void upd(int node,int tl,int tr,int pos){ if(tl==tr){ tree[node] = 1; return; } int mid = (tl+tr)/2; if(pos<=mid) upd(node*2,tl,mid,pos); else upd(node*2+1,mid+1,tr,pos); tree[node] = tree[node*2] + tree[node*2+1]; } int get(int node,int tl,int tr){ if(r<tl || tr<l)return 0; if(tr<=r && l<=tl)return tree[node]; int mid = (tr+tl)/2; int x = get(node*2,tl,mid); int y = get(node*2+1,mid+1,tr); return x+y; } long long count_swaps(std::vector<int> s) { for(int i=0;i<n;i++){ if(s[i]<0){ locl[-s[i]].push_back(i); } else { locr[s[i]].push_back(i); } } for(int i=0;i<n;i++) if(!fix[i]){ if(s[i]<0){ int loc = locr[ -s[i] ][ indr[ -s[i] ] ]; //cout<<loc<<" 1111"<<endl; r = loc; l = i+1; ans += loc - i - 1 - get(1,0,n-1); //cout<<ans<<" 111"<<endl; indr[ -s[i] ] ++; indl[ -s[i] ] ++; fix[loc]=1; upd(1,0,n-1,loc); } else { int loc = locl[ s[i] ][ indl[ s[i] ] ]; //cout<<loc<<endl; r = loc; l = i+1; ans += loc - i - get(1,0,n-1); //cout<<ans<<endl; indl[ s[i] ] ++; indr[ s[i] ] ++; fix[loc]=1; upd(1,0,n-1,loc); } } return ans; } int main(){ cin>>n; n*=2; for(int i=0;i<n;i++){ cin>>x; s.push_back(x); } cout<< count_swaps(s) <<endl; }

Compilation message (stderr)

/tmp/ccy6b2cQ.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccuL4TZW.o:shoes.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status