Submission #51995

#TimeUsernameProblemLanguageResultExecution timeMemory
51995zetapiGondola (IOI14_gondola)C++14
0 / 100
3 ms688 KiB
#include <gondola.h> #include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define ll long long #define itr ::iterator typedef pair<int,int> pii; const int MAX=5e5; int arr[MAX],fin[MAX],fre[MAX]; int valid(int n,int inputSeq[]) { return 1; } int replacement(int n,int gondolaSeq[],int replacementSeq[]) { vector<int> vec; priority_queue<int> absent; priority_queue<pii> present; pii cur; int N=n,mx=0,change=0,sec; for(int A=0;A<N;A++) arr[A]=A; for(int A=0;A<N;A++) { if(gondolaSeq[A]<=N) { gondolaSeq[A]--; for(int B=A;B>=0;B--) { arr[B]=gondolaSeq[A]; gondolaSeq[A]--; if(gondolaSeq[A]<0) gondolaSeq[A]+=N; } gondolaSeq[A]=arr[A]; for(int B=A+1;B<N;B++) { gondolaSeq[A]++; if(gondolaSeq[A]>=N) gondolaSeq[A]=0; arr[B]=gondolaSeq[A]; } gondolaSeq[A]=arr[A]+1; break; } } for(int A=0;A<N;A++) arr[A]++; for(int A=0;A<N;A++) { fre[gondolaSeq[A]]++; mx=max(mx,gondolaSeq[A]); present.push(mp(gondolaSeq[A],A)); if(arr[A]!=gondolaSeq[A]) change++; } for(int A=1;A<=mx;A++) { if(!fre[A]) absent.push(A); } while(!present.empty()) { cur=present.top(); if(cur.first<=N+change) break; present.pop(); sec=absent.top(); present.push(mp(sec,cur.second)); absent.pop(); //cout<<cur.second<<" "<<cur.first<<" "<<sec<<"\n"; vec.pb(sec); } while(!present.empty()) { cur=present.top(); present.pop(); fin[cur.second]=cur.first; } for(int A=0;A<N;A++) { if(fin[A]!=arr[A]) present.push(mp(fin[A],arr[A])); } while(!present.empty()) { cur=present.top(); present.pop(); vec.pb(cur.second); } reverse(vec.begin(),vec.end()); // for(auto A:vec) // cout<<A<<" "; for(int A=0;A<vec.size();A++) replacementSeq[A]=arr[A]; return vec.size(); } int countReplacement(int n, int inputSeq[]) { return -3; } /*int main() { ios_base::sync_with_stdio(false); cout<<replacement()<<"\n"; return 0; }*/

Compilation message (stderr)

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:101:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int A=0;A<vec.size();A++)
                ~^~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...