제출 #235793

#제출 시각아이디문제언어결과실행 시간메모리
235793DanerZeinGondola (IOI14_gondola)C++14
55 / 100
36 ms4600 KiB
#include "gondola.h" #include <bits/stdc++.h> #define MAX 100000000 using namespace std; typedef pair<int,int> ii; int valid(int n, int inputSeq[]) { set<int>s; int x=inputSeq[0]; s.insert(inputSeq[0]); for(int i=1;i<n;i++){ s.insert(inputSeq[i]); if(x==n){ if(inputSeq[i]==1){ x=1; } else return 0; } else{ if(x==inputSeq[i]-1){ x=inputSeq[i]; } else return 0; } } if(s.size()!=n) return 0; return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { vector<bool> nf(250010,false); vector<ii> gn; int mi=MAX,id; for(int i=0;i<n;i++){ if(mi>gondolaSeq[i]){ mi=gondolaSeq[i]; id=i; } //mi=min(mi,gondolaSeq[i]); if(gondolaSeq[i]>n){ gn.push_back(ii(gondolaSeq[i],-1)); } else{ nf[gondolaSeq[i]]=true; } } vector<int> go,gon(n,-1); if(mi>n){ for(int i=0;i<n;i++){ gon[i]=(i+1); } } else{ int j=id; int aux=mi; while(true){ if(j==gon.size()) j=0; if(gon[j]!=-1) break; gon[j]=aux; if(aux==n){ aux=0; } aux++; j++; } } int j=0; for(int i=0;i<gon.size();i++){ // cout<<gon[i]<<" "; if(nf[gon[i]]==false){ gn[j].second=gon[i]; j++; } } // cout<<endl; int ga=n+1; j=0; int t=0; sort(gn.begin(),gn.end()); /* for(int i=0;i<gn.size();i++){ cout<<gn[i]<<" "; } cout<<endl; for(int i=0;i<go.size();i++){ cout<<go[i]<<" "; } cout<<endl;*/ for(int i=0;i<gn.size();i++){ replacementSeq[j]=gn[i].second; j++; t++; while(true){ if(ga==gn[i].first){ ga++; break; } // ga++; replacementSeq[j]=ga; ga++; j++; t++; } } //cout<<t<<endl; return t; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }

컴파일 시 표준 에러 (stderr) 메시지

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:26:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(s.size()!=n) return 0;
      ~~~~~~~~^~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:60:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if(j==gon.size()) j=0;
          ~^~~~~~~~~~~~
gondola.cpp:71:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<gon.size();i++){
               ~^~~~~~~~~~~
gondola.cpp:91:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<gn.size();i++){
               ~^~~~~~~~~~
gondola.cpp:60:11: warning: 'id' may be used uninitialized in this function [-Wmaybe-uninitialized]
       if(j==gon.size()) j=0;
          ~^~~~~~~~~~~~
#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...