Submission #900274

# Submission time Handle Problem Language Result Execution time Memory
900274 2024-01-08T03:38:17 Z Darren0724 Gondola (IOI14_gondola) C++17
75 / 100
15 ms 2396 KB
#include "gondola.h"
#include<bits/stdc++.h>
//#include "grader.cpp"
using namespace std;
const int INF=1e9;
const int mod=1e9+9;
long long pw(long long a,int b){
	long long ans=1;
	while(b){
		if(b&1){
			ans=ans*a%mod;
		}
		a=a*a%mod;
		b>>=1;
	}
	return ans;
}
int valid(int n, int v[]){
	int mn=INF,idx=-1;
	vector<int> a(300000);
	for(int i=0;i<n;i++){
		a[v[i]]++;
		if(a[v[i]]>1){
			return 0;
		}
		if(v[i]<mn){
			idx=i;
			mn=v[i];
		}
	}
	if(mn>n){
		return 1;
	}
	for(int j=0;j<n;j++){
		int i=(j+idx)%n;
		if(v[i]<=n){
			if(v[i]!=mn+j){
				return 0;
			}
		}
	}
	return 1;
}

//----------------------

int replacement(int n, int v[], int ans[]){
	int mn=INF,idx=0,mx=-1;
	vector<int> a(300000,-1);
	for(int i=0;i<n;i++){
		a[v[i]]=i;
		if(v[i]<mn){
			idx=i;
			mn=v[i];
		}
	}
	vector<int> ori(n);
	if(mn>n){
		idx=0,mn=1;
	}
	for(int i=0;i<n;i++){
		ori[(idx+i)%n]=mn;
		mn++;
		if(mn>n){
			mn=1;
		}
	}
	int j=n+1,ptr=0;
	for(int i=n+1;i<300000;i++){
		if(a[i]!=-1){
			ans[ptr]=ori[a[i]];
			ptr++;
			while(j<i){
				ans[ptr]=j;
				j++;
				ptr++;
			}
			j++;
		}
	}
	return ptr;
}

//----------------------

int countReplacement(int n, int v[]){
	if(!valid(n,v)){
		return 0;
	}
	vector<int> a;
	for(int i=0;i<n;i++){
		if(v[i]>n){
			a.push_back(v[i]);
		}
	}
	sort(a.begin(),a.end());
	long long ans=1;
	int sz=a.size();
	int last=n;
	for(int i=0;i<sz;i++){
		int t=a[i]-last-1;
		ans=ans*pw((sz-i),t);
		ans%=mod;
		last=a[i];
	}
	return ans;
}

Compilation message

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:48:19: warning: unused variable 'mx' [-Wunused-variable]
   48 |  int mn=INF,idx=0,mx=-1;
      |                   ^~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1624 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1628 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1880 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1628 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
6 Correct 3 ms 1628 KB Output is correct
7 Correct 6 ms 1884 KB Output is correct
8 Correct 6 ms 1880 KB Output is correct
9 Correct 2 ms 1628 KB Output is correct
10 Correct 7 ms 1884 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1372 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1628 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 1 ms 1540 KB Output is correct
6 Correct 5 ms 1624 KB Output is correct
7 Correct 7 ms 1884 KB Output is correct
8 Correct 6 ms 1884 KB Output is correct
9 Correct 3 ms 1628 KB Output is correct
10 Correct 7 ms 1884 KB Output is correct
11 Correct 1 ms 1628 KB Output is correct
12 Correct 1 ms 1412 KB Output is correct
13 Correct 4 ms 1628 KB Output is correct
14 Correct 1 ms 1372 KB Output is correct
15 Correct 7 ms 1880 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1628 KB Output is correct
2 Correct 1 ms 1628 KB Output is correct
3 Correct 1 ms 1372 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 1 ms 1628 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1624 KB Output is correct
2 Correct 1 ms 1368 KB Output is correct
3 Correct 1 ms 1372 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 1 ms 1628 KB Output is correct
6 Correct 1 ms 1628 KB Output is correct
7 Correct 1 ms 1628 KB Output is correct
8 Correct 2 ms 1628 KB Output is correct
9 Correct 1 ms 1628 KB Output is correct
10 Correct 1 ms 1628 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1372 KB Output is correct
2 Correct 1 ms 1628 KB Output is correct
3 Correct 1 ms 1372 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 2 ms 1628 KB Output is correct
6 Correct 1 ms 1372 KB Output is correct
7 Correct 1 ms 1624 KB Output is correct
8 Correct 1 ms 1624 KB Output is correct
9 Correct 1 ms 1628 KB Output is correct
10 Correct 2 ms 1628 KB Output is correct
11 Correct 6 ms 2140 KB Output is correct
12 Correct 8 ms 2128 KB Output is correct
13 Correct 9 ms 2136 KB Output is correct
14 Correct 6 ms 2140 KB Output is correct
15 Correct 15 ms 2396 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1624 KB Output is correct
2 Correct 1 ms 1624 KB Output is correct
3 Correct 1 ms 1628 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1372 KB Output is correct
2 Correct 1 ms 1628 KB Output is correct
3 Correct 1 ms 1628 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 1 ms 1628 KB Output is correct
6 Correct 1 ms 1628 KB Output is correct
7 Correct 1 ms 1628 KB Output is correct
8 Correct 1 ms 1624 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1624 KB Output is correct
2 Correct 1 ms 1628 KB Output is correct
3 Correct 1 ms 1372 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 1 ms 1628 KB Output is correct
6 Correct 1 ms 1624 KB Output is correct
7 Correct 1 ms 1372 KB Output is correct
8 Correct 1 ms 1628 KB Output is correct
9 Correct 11 ms 2392 KB Output is correct
10 Correct 9 ms 2140 KB Output is correct
11 Correct 4 ms 1628 KB Output is correct
12 Correct 5 ms 1884 KB Output is correct
13 Incorrect 2 ms 1628 KB Output isn't correct
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1372 KB Output is correct
2 Correct 1 ms 1628 KB Output is correct
3 Correct 1 ms 1376 KB Output is correct
4 Correct 1 ms 1636 KB Output is correct
5 Correct 1 ms 1636 KB Output is correct
6 Correct 1 ms 1632 KB Output is correct
7 Correct 1 ms 1376 KB Output is correct
8 Correct 1 ms 1636 KB Output is correct
9 Correct 11 ms 2148 KB Output is correct
10 Correct 9 ms 2144 KB Output is correct
11 Correct 4 ms 1640 KB Output is correct
12 Correct 5 ms 1856 KB Output is correct
13 Incorrect 2 ms 1628 KB Output isn't correct
14 Halted 0 ms 0 KB -