Submission #160968

#TimeUsernameProblemLanguageResultExecution timeMemory
160968InfiniteJestGondola (IOI14_gondola)C++14
45 / 100
23 ms2400 KiB
#include <iostream> #include <fstream> #include <vector> #include <queue> #include <algorithm> #include <math.h> #include "gondola.h" #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; int valid(int n, int inputSeq[]){ int ans=1; bool pres[300001]; for(int i=0;i<n;i++){ if(inputSeq[i]<=n){ int val=inputSeq[i]; for(int y=0;y<n;y++){ if(inputSeq[(i+y)%n]<=n&&inputSeq[(i+y)%n]!=val||pres[inputSeq[(i+y)%n]]){ ans=0; break; } val++; if(val==n+1)val=1; pres[inputSeq[(i+y)%n]]=1; } break; } } return ans; } int replacement(int n, int gondolaSeq[], int replacementSeq[]){ bool flag=0; vector<pair<int,int> > p; int ind=-1,val; for(int i=0;i<n;i++){ if(gondolaSeq[i]<=n){ ind=i; val=gondolaSeq[i]; } else flag=1; } if(!flag)return 0; if(ind==-1){ ind=0; val=1; } for(int i=0;i<n;i++){ if(gondolaSeq[(ind+i)%n]>n){ p.pb(mp(gondolaSeq[(ind+i)%n],val)); } val++; if(val==n+1)val=1; } sort(p.begin(),p.end()); int cur=n+1; int indtot=0; for(int i=0;i<p.size();i++){ replacementSeq[indtot++]=p[i].se; for(;cur<p[i].fi;cur++)replacementSeq[indtot++]=cur; cur=p[i].fi+1; } return indtot; } int countReplacement(int n, int inputSeq[]){ return 0; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:21:32: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
         if(inputSeq[(i+y)%n]<=n&&inputSeq[(i+y)%n]!=val||pres[inputSeq[(i+y)%n]]){
            ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:62:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<p.size();i++){
                 ~^~~~~~~~~
gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:21:80: warning: 'pres[<unknown>]' may be used uninitialized in this function [-Wmaybe-uninitialized]
         if(inputSeq[(i+y)%n]<=n&&inputSeq[(i+y)%n]!=val||pres[inputSeq[(i+y)%n]]){
                                                          ~~~~~~~~~~~~~~~~~~~~~~^
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:56:10: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
       val++;
       ~~~^~
#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...