Submission #912455

# Submission time Handle Problem Language Result Execution time Memory
912455 2024-01-19T13:42:20 Z oblantis Gondola (IOI14_gondola) C++17
45 / 100
24 ms 5100 KB
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define all(v) v.begin(), v.end()
#define pb push_back
#define ss second
#define ff first
#define vt vector
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;
typedef pair<int, int> pii;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
const int inf = 1e9;
const int mod = 1e9+9;
const int maxn = 1e5 + 1;
#include "gondola.h"

int valid(int n, int a[]){
	for(int i = 0; i < n; i++){
		if(a[i] <= n){
			int j = (i + 1) % n, o = a[i] % n + 1;
			set<int> s;
			while(j != i){
				if((a[j] <= n && a[j] != o) || s.find(a[j]) != s.end())return 0;
				s.insert(a[j]);
				j = (j + 1) % n;
				o = o % n + 1;
			}
			return 1;
		}
	}
	return 1;
}
int replacement(int n, int a[], int out[]){
	pii b[n];
	for(int i = 0; i < n; i++){
		if(a[i] <= n){
			int x = a[i] % n + 1, j = (i + 1) % n, o = 1;
			while(j != i){
				b[o] = {a[j], x};
				x = x % n + 1;
				j = (j + 1) % n;
				o++;
			}
			break;
		}
		else if(i == n - 1){
			for(int j = 0; j < n; j++)b[j] = {a[j], j + 1};
		}
	}
	sort(b, b + n);
	int x = b[n - 1].ff - n;
	for(int i = n + 1, j = 0, o = 0; j < n; j++){
		if(b[j].ff == b[j].ss)continue;
		while(b[j].ff != b[j].ss){
			out[o++] = b[j].ss;
			b[j].ss = i;
			i++;
		}
	}
	return x;
}
int pw(int x, int y){
	int ret = 1;
	while(y){
		if(y & 1)ret = 1ll * ret * x % mod;
		x = 1ll * x * x % mod;
		y >>= 1;
	}
	return ret;
}
int countReplacement(int n, int a[]){
	if(!valid(n, a)){
		return 0;
	}
	vt<int> hv;
	for(int i = 0; i < n; i++){
		if(a[i] > n){
			hv.pb(a[i]);
		}
	}
	sort(all(hv));
	int sz = hv.size(), ret = pw(sz, hv[0] - n - 1);
	for(int i = 1; i < sz; i++){
		ret = 1ll * ret * pw(sz - i, hv[i] - hv[i - 1] - 1) % mod;
	}
	return ret;
}

//void solve() {
	//int n;
	//cin >> n;
	//int a[n];
	//for(int i = 0; i < n; i++){
		//cin >> a[i];
	//}
	//cout << countReplacement(n, a);
//}

//int main() {
	//ios_base::sync_with_stdio(0);
	//cin.tie(0);
	//int times = 1;
	////cin >> times;
	//for(int i = 1; i <= times; i++) {
		//solve();
	//}
	//return 0;
//}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 10 ms 2392 KB Output is correct
7 Correct 7 ms 1116 KB Output is correct
8 Correct 20 ms 4272 KB Output is correct
9 Correct 6 ms 1628 KB Output is correct
10 Correct 24 ms 4948 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 1 ms 348 KB Output is correct
4 Correct 1 ms 544 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 10 ms 2396 KB Output is correct
7 Correct 7 ms 1240 KB Output is correct
8 Correct 20 ms 4444 KB Output is correct
9 Correct 6 ms 1628 KB Output is correct
10 Correct 23 ms 5100 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 0 ms 344 KB Output is correct
13 Correct 3 ms 712 KB Output is correct
14 Incorrect 1 ms 420 KB Output isn't correct
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 9 ms 1628 KB Output is correct
12 Correct 11 ms 1884 KB Output is correct
13 Correct 12 ms 1624 KB Output is correct
14 Correct 8 ms 1624 KB Output is correct
15 Correct 16 ms 2376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 360 KB Output is correct
2 Correct 1 ms 504 KB Output is correct
3 Runtime error 1 ms 360 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 360 KB Output is correct
2 Correct 1 ms 360 KB Output is correct
3 Runtime error 1 ms 360 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 360 KB Output is correct
2 Correct 0 ms 360 KB Output is correct
3 Runtime error 1 ms 372 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 356 KB Output is correct
3 Runtime error 1 ms 348 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -