제출 #961216

#제출 시각아이디문제언어결과실행 시간메모리
961216IUA_Hasin곤돌라 (IOI14_gondola)C++17
45 / 100
1062 ms9804 KiB
#include "gondola.h" #include <bits/stdc++.h> #define endl "\n" #define yeap cout<<"YES"<<endl #define nope cout<<"NO"<<endl #define ll long long using namespace std; const ll N = 1e6; ll vis[N]; ll vec[N]; int valid(int n, int inputSeq[]) { ll mn = 300000; ll mx = -1; ll mnind = 0; ll status = 1; for(int i=0; i<n; i++){ ll a = inputSeq[i]; if(a<mn){ mn = a; mnind = i; } mx = max(mx, a); vis[a]++; if(vis[a]>1){ status = -1; } } // if((mx-mn)>=n){ // status = -1; // } if(status==-1){ return 0; } else { if(mn>=n){ return 1; } else { ll cnt = 0; ll ind = mnind; ll temp = mn; while(cnt<n){ ll temp1 = ind%n; if(inputSeq[temp1]<=n){ if(inputSeq[temp1]!=temp){ status = -1; break; } cnt++; ind++; temp++; } } if(status==-1){ return 0; } else { return 1; } } } } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { ll mx = -1; ll mn = 300000; for(int i=0; i<n; i++){ ll a = gondolaSeq[i]; vis[a] = 1; mx = max(mx, a); mn = min(mn, a); } if(mx==n){ return 0; } else { if(mn>n){ for(int i=0; i<n; i++){ ll a = gondolaSeq[i]; vec[a] = i+1; } ll cnt = 0; ll cnt1 = n; for(int i=n+1; i<=mx; i++){ ll b = vec[i]; if(vis[i]==1){ replacementSeq[cnt] = b; cnt++; cnt1++; while(cnt1<i){ replacementSeq[cnt] = cnt1; cnt++; cnt1++; } } } return cnt; } else { ll mnind; for(int i=0; i<n; i++){ if(gondolaSeq[i]==mn){ mnind = i; break; } } ll cntt = 0; ll temp1 = mn; ll temp2 = mnind; while(cntt<n){ ll a = temp1%n; ll b = temp2%n; ll c = gondolaSeq[b]; if(a==0){ a = n; } vec[c] = a; temp1++; temp2++; cntt++; } ll cnt = 0; ll cnt1 = n; for(int i=n+1; i<=mx; i++){ ll b = vec[i]; if(vis[i]==1){ replacementSeq[cnt] = b; cnt++; cnt1++; while(cnt1<i){ replacementSeq[cnt] = cnt1; cnt++; cnt1++; } } } return cnt; } } } //---------------------- int countReplacement(int n, int inputSeq[]) { ll status = valid(n, inputSeq); if(status==0){ return 0; } else { } }

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

gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:168:1: warning: control reaches end of non-void function [-Wreturn-type]
  168 | }
      | ^
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:112:10: warning: 'mnind' may be used uninitialized in this function [-Wmaybe-uninitialized]
  112 |       ll mnind;
      |          ^~~~~
#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...