Submission #1262930

#TimeUsernameProblemLanguageResultExecution timeMemory
1262930motionGondola (IOI14_gondola)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> #include "gondola.h" using namespace std; int MOD=1e9+7; int valid(int n,vector<int> inputSeq) { int ind,val; for(int i=0;i<n;i++) { if(inputSeq[i]<=n) { ind=i; val=inputSeq[i]; } } val+=n; for(int i=ind-1;i>=0;i--) { if(inputSeq[i]<=n) { int k=(val-(ind-i))%n; if(k==0) k=n; if(inputSeq[i]!=k) { return 0; } } } for(int i=ind+1;i<n;i++) { if(inputSeq[i]<=n) { int k=(val-(ind-i))%n; if(k==0) k=n; if(inputSeq[i]!=k) { return 0; } } } sort(inputSeq.begin(),inputSeq.end()); for(int i=1;i<n;i++) { if(inputSeq[i]==inputSeq[i-1]) { return 0; } } return 1; } int replacement(int n,vector<int> inputSeq,vector<int> replacementSeq) { int ind=0,val=1; vector<pair<int,int>> S; for(int i=0;i<n;i++) { if(inputSeq[i]<=n) { ind=i; val=inputSeq[i]; } } val+=n; for(int i=ind;i>=0;i--) { if(inputSeq[i]>n) { int k=(val-(ind-i))%n; if(k==0) k=n; S.push_back({inputSeq[i],k}); } } for(int i=ind+1;i<n;i++) { if(inputSeq[i]>n) { int k=(val+(i-ind))%n; if(k==0) k=n; S.push_back({inputSeq[i],k}); } } if(S.size()==0) return 0; sort(S.begin(),S.end()); int in=0,e=S[S.size()-1].first; replacementSeq.push_back(S[in].second); for(int i=n+1;i<e;i++) { if(i==S[in].first) { in++; replacementSeq.push_back(S[in].second); } else { replacementSeq.push_back(i); } } for(auto i:replacementSeq) { cout<<i<<" "; } return replacementSeq.size(); } int countReplacement(int n,vector<int> inputSeq) { if(!valid(n,inputSeq)) return 0; long long ans=1; bool cz=1; int ind=0,val=1; vector<pair<int,int>> S; for(int i=0;i<n;i++) { if(inputSeq[i]<=n) { ind=i; val=inputSeq[i]; cz=0; } } val+=n; for(int i=ind;i>=0;i--) { if(inputSeq[i]>n) { int k=(val-(ind-i))%n; if(k==0) k=n; S.push_back({inputSeq[i],k}); } } for(int i=ind+1;i<n;i++) { if(inputSeq[i]>n) { int k=(val+(i-ind))%n; if(k==0) k=n; S.push_back({inputSeq[i],k}); } } if(S.size()==0) return 1; sort(S.begin(),S.end()); int in=0,e=S[S.size()-1].first; for(int i=n+1;i<e;i++) { if(i==S[in].first) { in++; } else { ans*=(S.size()-in); ans%=MOD; } } if(cz) { ans*=n; ans%=MOD; } return ans; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccwM1xBF.o: in function `main':
grader.cpp:(.text.startup+0xae): undefined reference to `valid'
/usr/bin/ld: grader.cpp:(.text.startup+0x108): undefined reference to `countReplacement'
/usr/bin/ld: grader.cpp:(.text.startup+0x135): undefined reference to `replacement'
collect2: error: ld returned 1 exit status