제출 #878460

#제출 시각아이디문제언어결과실행 시간메모리
878460JakobZorz곤돌라 (IOI14_gondola)C++14
35 / 100
12 ms4464 KiB
#include"gondola.h" #include<iostream> #include<unordered_set> using namespace std; int valid(int n,int inputSeq[]){ unordered_set<int>s(inputSeq,inputSeq+n); if(s.size()!=n) return 0; int curr=-1; for(int i=0;i<2*n;i++){ if(curr==-1&&inputSeq[i%n]<=n) curr=inputSeq[i%n]; if(inputSeq[i%n]<=n&&curr!=inputSeq[i%n]) return 0; curr++; if(curr==n+1) curr=1; } return 1; } //---------------------- int replacement(int n,int gondolaSeq[],int replacementSeq[]){ int len=0; int mx=0; for(int i=0;i<n;i++) mx=max(mx,gondolaSeq[i]); len=mx-n; for(int i=0;i<len;i++) replacementSeq[i]=0; bool present=false; for(int i=0;i<n;i++) if(gondolaSeq[i]<=n) present=true; if(len==0) return 0; if(present){ int curr=-1; for(int i=0;i<2*n;i++){ if(curr==-1&&gondolaSeq[i%n]<=n) curr=gondolaSeq[i%n]; if(i>=n&&gondolaSeq[i%n]<mx&&gondolaSeq[i%n]>n){ replacementSeq[gondolaSeq[i%n]-n-1]=curr; } curr++; if(curr==n+1) curr=1; } curr=-1; for(int i=0;i<2*n;i++){ if(curr==-1&&gondolaSeq[i%n]<=n) curr=gondolaSeq[i%n]; if(i>=n&&gondolaSeq[i%n]==mx){ for(int i=0;i<len;i++){ if(replacementSeq[i]==0){ replacementSeq[i]=curr; curr=i+n+1; } } break; } curr++; if(curr==n+1) curr=1; } }else{ for(int i=0;i<n;i++){ if(gondolaSeq[i]<mx&&gondolaSeq[i]>n){ replacementSeq[gondolaSeq[i]-n-1]=i+1; } } for(int i=0;i<n;i++){ if(gondolaSeq[i]==mx){ int curr=i+1; for(int i=0;i<len;i++){ if(replacementSeq[i]==0){ replacementSeq[i]=curr; curr=i+n+1; } } } } } return len; } //---------------------- int countReplacement(int n,int inputSeq[]){ return -3; }

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

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:8:16: warning: comparison of integer expressions of different signedness: 'std::unordered_set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
    8 |     if(s.size()!=n)
      |        ~~~~~~~~^~~
#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...