Submission #145749

#TimeUsernameProblemLanguageResultExecution timeMemory
145749AKaan37Arranging Shoes (IOI19_shoes)C++17
10 / 100
67 ms56192 KiB
#include <bits/stdc++.h> #include "shoes.h" using namespace std; typedef long long lo; typedef pair< lo,lo > PII; #define fi first #define se second #define mp make_pair #define pb push_back #define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL) #define FOR for(lo i=1;i<=n;i++) #define mid ((start+end)/2) #define ort ((bas+son)/2) const lo MAX = -1000000000000000000; const lo MIN = 1000000000000000000; const lo inf = 1000000000; const lo KOK = 100000; const lo LOG = 30; const lo li = 500005; const lo mod = 1000000007; lo a[li],cev,hak[li],hak1[li],butun,butun1,farkli,farkli1,vis[li],vis1[li],yer; vector<int> vv; vector<PII> sag[li]; vector<PII> sol[li]; long long count_swaps(vector<int> v) { //~ cout<<"**\n"; //~ int cev=0; for(lo i=0;i<(lo)v.size();i++){ //~ cout<<butun<<endl; if(v[i]<0){ if((lo)sag[-v[i]].size()-hak[-v[i]]>0){ lo at=v[i]; memset(vis,0,sizeof(vis)); //~ cout<<sag[-v[i]][hak[-v[i]]-1].fi<<endl; vis[v[i]]++; for(lo j=i;j>=0;j--){ vis[v[j-1]]++; swap(v[j],v[j-1]); cev++; //~ cout<<vis[-at]<<" "<<i<<endl; if(vis[-at]==(lo)sag[-at].size()-hak[-at])break; //~ cout<<j<<" "<<j-1<<" "<<" "<<endl; } hak[-at]++; //~ cout<<"**\n"; } else{sol[-v[i]].pb(mp(i,butun1));} } else{ lo at=v[i]; if((lo)sol[v[i]].size()-hak1[v[i]]>0){ memset(vis,0,sizeof(vis)); vis[v[i]]++; for(lo j=i;j>=0;j--){ if(vis[-at]==(lo)sol[v[i]].size()-hak1[v[i]])break; vis[v[j-1]]++; if(vis[-at]==(lo)sol[v[i]].size()-hak1[v[i]])break; swap(v[j],v[j-1]); cev++; } hak1[at]++; } else{sag[v[i]].pb(mp(i,butun));} } } return cev; } //~ int main(){ //~ lo n=0; //~ scanf("%lld",&n); //~ FOR{ //~ scanf("%lld",&a[i]); //~ ////~ if(a[i]<0) //~ vv.pb(a[i]); //~ } //~ ////~ cout<<vv[0]<<endl; //~ lo at=count_swaps(vv); //~ printf("%lld\n",at); //~ }
#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...