답안 #900278

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
900278 2024-01-08T03:46:58 Z Darren0724 곤돌라 (IOI14_gondola) C++17
90 / 100
14 ms 3444 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){
	assert(b>=0);
	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;
	}
	int mn=INF;
	for(int i=0;i<n;i++){
		mn=min(mn,v[i]);
	}
	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];
	}
	if(mn>n){
		ans=ans*n%mod;
	}
	return ans;
}

Compilation message

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:49:19: warning: unused variable 'mx' [-Wunused-variable]
   49 |  int mn=INF,idx=0,mx=-1;
      |                   ^~
# 결과 실행 시간 메모리 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 1372 KB Output is correct
5 Correct 1 ms 1628 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1372 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1372 KB Output is correct
4 Correct 1 ms 1372 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
6 Correct 3 ms 1628 KB Output is correct
7 Correct 7 ms 1968 KB Output is correct
8 Correct 6 ms 1868 KB Output is correct
9 Correct 2 ms 1628 KB Output is correct
10 Correct 7 ms 1840 KB Output is correct
# 결과 실행 시간 메모리 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 1372 KB Output is correct
5 Correct 1 ms 1624 KB Output is correct
6 Correct 4 ms 1624 KB Output is correct
7 Correct 7 ms 1880 KB Output is correct
8 Correct 6 ms 1884 KB Output is correct
9 Correct 2 ms 1552 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 1628 KB Output is correct
13 Correct 4 ms 1624 KB Output is correct
14 Correct 1 ms 1628 KB Output is correct
15 Correct 7 ms 1916 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1628 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 1624 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1624 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1624 KB Output is correct
4 Correct 1 ms 1628 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
6 Correct 1 ms 1624 KB Output is correct
7 Correct 1 ms 1628 KB Output is correct
8 Correct 1 ms 1628 KB Output is correct
9 Correct 1 ms 1628 KB Output is correct
10 Correct 1 ms 1628 KB Output is correct
# 결과 실행 시간 메모리 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 1624 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
6 Correct 1 ms 1628 KB Output is correct
7 Correct 1 ms 1624 KB Output is correct
8 Correct 1 ms 1628 KB Output is correct
9 Correct 1 ms 1628 KB Output is correct
10 Correct 1 ms 1624 KB Output is correct
11 Correct 6 ms 2140 KB Output is correct
12 Correct 7 ms 2140 KB Output is correct
13 Correct 9 ms 2092 KB Output is correct
14 Correct 6 ms 2140 KB Output is correct
15 Correct 14 ms 2392 KB Output is correct
# 결과 실행 시간 메모리 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
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1628 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1476 KB Output is correct
4 Correct 1 ms 1372 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
6 Correct 1 ms 1372 KB Output is correct
7 Correct 1 ms 1628 KB Output is correct
8 Correct 1 ms 1372 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1628 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 1372 KB Output is correct
6 Correct 1 ms 1628 KB Output is correct
7 Correct 1 ms 1624 KB Output is correct
8 Correct 1 ms 1624 KB Output is correct
9 Correct 10 ms 1880 KB Output is correct
10 Correct 9 ms 1628 KB Output is correct
11 Correct 4 ms 1628 KB Output is correct
12 Correct 5 ms 1628 KB Output is correct
13 Correct 2 ms 1628 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 1372 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1372 KB Output is correct
4 Correct 1 ms 1876 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
6 Correct 1 ms 1372 KB Output is correct
7 Correct 1 ms 1372 KB Output is correct
8 Correct 1 ms 1628 KB Output is correct
9 Correct 10 ms 1884 KB Output is correct
10 Correct 9 ms 1628 KB Output is correct
11 Correct 4 ms 1628 KB Output is correct
12 Correct 5 ms 1628 KB Output is correct
13 Correct 2 ms 1628 KB Output is correct
14 Runtime error 9 ms 3444 KB Execution killed with signal 11
15 Halted 0 ms 0 KB -