# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
852297 | 2023-09-21T14:44:31 Z | DobromirAngelov | Gondola (IOI14_gondola) | C++14 | 37 ms | 5068 KB |
#include "gondola.h" #include<bits/stdc++.h> using namespace std; const int MAXN=1e5+5; const int MOD=1e9+9; map<int,int> m; int valid(int n, int a[]) { for(int i=0;i<n;i++) { if(m[a[i]]!=0) return 0; m[a[i]]=1; } int mn=1e9, idx=-1; for(int i=0;i<n;i++) { if(a[i]<mn) { mn=a[i]; idx=i; } } if(mn<=n) { int cur=mn+1; for(int i=idx+1;i!=idx;i++) { if(i>=n) i-=n; if(a[i]<=n && a[i]!=cur) return 0; cur++; if(i==n-1) i=-1; } } return 1; } int b[MAXN]; vector<pair<int,int> > v; int replacement(int n, int a[], int replacementSeq[]) { int mn=1e9,idx=-1; for(int i=0;i<n;i++) { if(a[i]<mn) { mn=a[i]; idx=i; } } if(mn>n) { for(int i=0;i<n;i++) b[i]=i+1; } else { int cur=mn; b[idx]=cur++; for(int i=idx+1;i!=idx;i++) { if(i>=n) i-=n; if(cur>n) cur-=n; b[i]=cur++; if(i==n-1) i=-1; } } for(int i=0;i<n;i++) { if(a[i]>n) v.push_back({a[i],b[i]}); } sort(v.begin(), v.end()); int ptr=0; int cur=n; for(int i=0;i<v.size();i++) { replacementSeq[ptr++]=v[i].second; cur++; while(cur<v[i].first) { replacementSeq[ptr++]=cur++; } } return ptr; } int fastPow(int a,int pw) { long long ret=1; while(pw>0) { if(pw&1) ret=ret*a%MOD; a=(long long) a*a%MOD; pw/=2; } return ret; } int countReplacement(int n, int a[]) { if(!valid(n,a)) return 0; int mx=0; for(int i=0;i<n;i++) { mx=max(mx,a[i]); } if(mx==n) return 1; int mn=1e9,idx=-1; for(int i=0;i<n;i++) { if(a[i]<mn) { mn=a[i]; idx=i; } } if(mn>n) { for(int i=0;i<n;i++) b[i]=i+1; } else { int cur=mn; b[idx]=cur++; for(int i=idx+1;i!=idx;i++) { if(i>=n) i-=n; if(cur>n) cur-=n; b[i]=cur++; if(i==n-1) i=-1; } } for(int i=0;i<n;i++) { if(a[i]>n) v.push_back({a[i],b[i]}); } sort(v.begin(), v.end()); int ptr=0; int last=0; int cur=n; long long ans=1; for(int i=0;i<v.size();i++) { ptr++; cur++; while(cur<v[i].first) { ptr++; cur++; } ans=ans*fastPow(v.size()-i, ptr-last-1)%MOD; last=ptr; } if(mn>n) { for(int i=2;i<=n;i++) ans=ans*i%MOD; } return ans; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 0 ms | 344 KB | Output is correct |
5 | Correct | 0 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 344 KB | Output is correct |
6 | Correct | 10 ms | 2136 KB | Output is correct |
7 | Correct | 8 ms | 600 KB | Output is correct |
8 | Correct | 18 ms | 3928 KB | Output is correct |
9 | Correct | 6 ms | 1368 KB | Output is correct |
10 | Correct | 25 ms | 4440 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 1 ms | 348 KB | Output is correct |
5 | Correct | 1 ms | 756 KB | Output is correct |
6 | Correct | 10 ms | 2136 KB | Output is correct |
7 | Correct | 7 ms | 600 KB | Output is correct |
8 | Correct | 18 ms | 3928 KB | Output is correct |
9 | Correct | 6 ms | 1368 KB | Output is correct |
10 | Correct | 29 ms | 4688 KB | Output is correct |
11 | Correct | 1 ms | 348 KB | Output is correct |
12 | Correct | 0 ms | 344 KB | Output is correct |
13 | Correct | 13 ms | 2140 KB | Output is correct |
14 | Correct | 1 ms | 348 KB | Output is correct |
15 | Correct | 31 ms | 4696 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 0 ms | 344 KB | Output is correct |
5 | Correct | 2 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 348 KB | Output is correct |
2 | Correct | 1 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 0 ms | 344 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 344 KB | Output is correct |
7 | Correct | 0 ms | 344 KB | Output is correct |
8 | Correct | 1 ms | 344 KB | Output is correct |
9 | Correct | 1 ms | 344 KB | Output is correct |
10 | Correct | 1 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 0 ms | 344 KB | Output is correct |
5 | Correct | 0 ms | 344 KB | Output is correct |
6 | Correct | 0 ms | 344 KB | Output is correct |
7 | Correct | 1 ms | 344 KB | Output is correct |
8 | Correct | 1 ms | 344 KB | Output is correct |
9 | Correct | 1 ms | 344 KB | Output is correct |
10 | Correct | 1 ms | 344 KB | Output is correct |
11 | Correct | 7 ms | 856 KB | Output is correct |
12 | Correct | 7 ms | 1112 KB | Output is correct |
13 | Correct | 11 ms | 1712 KB | Output is correct |
14 | Correct | 6 ms | 856 KB | Output is correct |
15 | Correct | 18 ms | 2516 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 1 ms | 344 KB | Output is correct |
5 | Correct | 0 ms | 356 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 344 KB | Output is correct |
8 | Correct | 0 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 344 KB | Output is correct |
5 | Correct | 0 ms | 344 KB | Output is correct |
6 | Correct | 0 ms | 344 KB | Output is correct |
7 | Correct | 0 ms | 344 KB | Output is correct |
8 | Correct | 1 ms | 344 KB | Output is correct |
9 | Correct | 37 ms | 5068 KB | Output is correct |
10 | Correct | 26 ms | 4304 KB | Output is correct |
11 | Correct | 9 ms | 1880 KB | Output is correct |
12 | Correct | 12 ms | 2264 KB | Output is correct |
13 | Incorrect | 4 ms | 1012 KB | Output isn't correct |
14 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 1 ms | 344 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 1 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 344 KB | Output is correct |
6 | Correct | 0 ms | 344 KB | Output is correct |
7 | Correct | 0 ms | 344 KB | Output is correct |
8 | Correct | 0 ms | 344 KB | Output is correct |
9 | Correct | 36 ms | 5068 KB | Output is correct |
10 | Correct | 25 ms | 4312 KB | Output is correct |
11 | Correct | 10 ms | 1880 KB | Output is correct |
12 | Correct | 12 ms | 2264 KB | Output is correct |
13 | Incorrect | 3 ms | 856 KB | Output isn't correct |
14 | Halted | 0 ms | 0 KB | - |