#include <bits/stdc++.h>
#include "gondola.h"
#define f first
#define s second
#define mp make_pair
#define rep replacementSeq
#define MOD 1000000009
using namespace std;
typedef long long ll;
const int MAXN = 1e6+5;
unordered_map<int,int> v;
int valid(int n, int inputSeq[])
{
for(int i=0;i<n;i++){
if(v[inputSeq[i]])return 0;
v[inputSeq[i]]=1;
}
int mini=min_element(inputSeq,inputSeq+n)-inputSeq;
int ans=1;
if(inputSeq[mini]>n)return 1;
int i=(mini-inputSeq[mini]+1+n)%n;
for(int j=0;j<n-1;j++){
if(inputSeq[(i+j)%n]>n||inputSeq[(i+j+1)%n]>n)continue;
ans*=(inputSeq[(i+j)%n]+1==inputSeq[(i+j+1)%n]);
}
return ans;
}
//----------------------
vector<pair<int,int> > a;
int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
int ind=-1;
for(int i=0;i<n;i++)if(gondolaSeq[i]<=n)ind=i;
if(ind==-1){
for(int j=0;j<n;j++)a.push_back(mp(gondolaSeq[j],j+1));
}else{
ind=(ind-gondolaSeq[ind]+1+n)%n;
for(int j=0;j<n;j++)a.push_back(mp(gondolaSeq[(ind+j)%n],j+1));
}
sort(a.begin(),a.end());
int id=0;
int k=n;
for(pair<int,int> x:a){
if(x.f==x.s)continue;
rep[id++]=x.s;
for(k+=1;k<x.f;k++)rep[id++]=k;
}
return id;
}
//----------------------
ll pot(int n, int a){
if(n==0)return 1;
ll h=pot(n/2,a)%MOD;
h=(h*h)%MOD;
if(n%2)h=(h*(ll)a)%MOD;
return h;
}
int countReplacement(int n, int inputSeq[])
{
if(!valid(n,inputSeq))return 0;
ll ans=1;
sort(inputSeq,inputSeq+n);
if(inputSeq[0]>n)ans=n;
int k=n;
for(int i=0;i<n;i++){
if(inputSeq[i]<=k)continue;
ans=(ans*pot(inputSeq[i]-k-1,n-i))%MOD;
k=inputSeq[i];
}
return ans%MOD;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
256 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
376 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
256 KB |
Output is correct |
4 |
Correct |
6 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
376 KB |
Output is correct |
6 |
Correct |
14 ms |
2088 KB |
Output is correct |
7 |
Correct |
17 ms |
632 KB |
Output is correct |
8 |
Correct |
22 ms |
3716 KB |
Output is correct |
9 |
Correct |
11 ms |
1400 KB |
Output is correct |
10 |
Correct |
25 ms |
4104 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
4 ms |
376 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
376 KB |
Output is correct |
6 |
Correct |
14 ms |
2088 KB |
Output is correct |
7 |
Correct |
18 ms |
760 KB |
Output is correct |
8 |
Correct |
23 ms |
3720 KB |
Output is correct |
9 |
Correct |
10 ms |
1272 KB |
Output is correct |
10 |
Correct |
25 ms |
4104 KB |
Output is correct |
11 |
Correct |
5 ms |
256 KB |
Output is correct |
12 |
Correct |
5 ms |
376 KB |
Output is correct |
13 |
Correct |
16 ms |
1960 KB |
Output is correct |
14 |
Correct |
5 ms |
376 KB |
Output is correct |
15 |
Correct |
32 ms |
4364 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
256 KB |
Output is correct |
3 |
Correct |
5 ms |
256 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
376 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
376 KB |
Output is correct |
4 |
Correct |
4 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
376 KB |
Output is correct |
6 |
Correct |
5 ms |
256 KB |
Output is correct |
7 |
Correct |
5 ms |
380 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
6 ms |
376 KB |
Output is correct |
10 |
Correct |
5 ms |
376 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
256 KB |
Output is correct |
3 |
Correct |
5 ms |
376 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
380 KB |
Output is correct |
6 |
Correct |
5 ms |
256 KB |
Output is correct |
7 |
Correct |
5 ms |
380 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
376 KB |
Output is correct |
10 |
Correct |
5 ms |
376 KB |
Output is correct |
11 |
Correct |
19 ms |
1776 KB |
Output is correct |
12 |
Correct |
20 ms |
1776 KB |
Output is correct |
13 |
Correct |
21 ms |
1520 KB |
Output is correct |
14 |
Correct |
18 ms |
1776 KB |
Output is correct |
15 |
Correct |
25 ms |
2420 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
4 ms |
376 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
4 ms |
256 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
380 KB |
Output is correct |
6 |
Correct |
5 ms |
376 KB |
Output is correct |
7 |
Correct |
5 ms |
256 KB |
Output is correct |
8 |
Correct |
5 ms |
256 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
376 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
376 KB |
Output is correct |
6 |
Correct |
5 ms |
376 KB |
Output is correct |
7 |
Correct |
5 ms |
376 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
35 ms |
3716 KB |
Output is correct |
10 |
Correct |
29 ms |
3496 KB |
Output is correct |
11 |
Correct |
13 ms |
1400 KB |
Output is correct |
12 |
Correct |
16 ms |
1912 KB |
Output is correct |
13 |
Correct |
7 ms |
632 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
256 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
376 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
376 KB |
Output is correct |
6 |
Correct |
5 ms |
376 KB |
Output is correct |
7 |
Correct |
5 ms |
376 KB |
Output is correct |
8 |
Correct |
5 ms |
256 KB |
Output is correct |
9 |
Correct |
37 ms |
3720 KB |
Output is correct |
10 |
Correct |
30 ms |
3496 KB |
Output is correct |
11 |
Correct |
13 ms |
1400 KB |
Output is correct |
12 |
Correct |
15 ms |
1912 KB |
Output is correct |
13 |
Correct |
7 ms |
632 KB |
Output is correct |
14 |
Correct |
42 ms |
4104 KB |
Output is correct |
15 |
Correct |
46 ms |
4484 KB |
Output is correct |
16 |
Correct |
12 ms |
1144 KB |
Output is correct |
17 |
Correct |
34 ms |
3496 KB |
Output is correct |
18 |
Correct |
20 ms |
1960 KB |
Output is correct |