답안 #801999

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
801999 2023-08-02T08:59:40 Z Sohsoh84 Giraffes (JOI22_giraffes) C++17
10 / 100
2652 ms 340 KB
// Wounds should become scars but I'm cracked instead U+1FAE0
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<ll, ll> pll;

#define all(x)			(x).begin(),(x).end()
#define X			first
#define Y			second
#define sep			' '
#define endl			'\n'
#define debug(x)		cerr << #x << ": " <<  x << endl;

const ll MAXN = 1e6 + 10;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int n, T[MAXN], P[MAXN], F[MAXN], ind[MAXN];
bool P_val[MAXN];

inline int rand_perm() {
	int l = 1, r = n;
	int fl = 1, fr = n;
	int ans = n;
	
	fill(P_val, P_val + n + 5, false);


	for (int i = 1; i <= n; i++) {
		if (P[l] == fl) {
			ans--;
			l++;
			fl++;
			P_val[fl] = true;
		} else if (P[l] == fr) {
			ans--;
			l++;
			fr--;
			P_val[fr] = true;
		} else if (P[r] == fl) {
			ans--;
			r--;
			fl++;
			P_val[fl] = true;
		} else if (P[r] == fr) {
			ans--;
			r--;
			fr--;
			P_val[fr] = true;
		} else {
			if (P_val[fl]) fl++;
			else if (P_val[fr]) fr--;
			if (rng() % 2) fl++;
			else fr--;

	//		if (P[l] < fl || P[l] > fr) P_val[P[l]] = true, l++;
	//		else if (P[r] < fl || P[r] > fr) P_val[P[r]] = true, r--;
			if (rng() % 2)
				P_val[P[l]] = true, l++;
			else
				P_val[P[r]] = true, r--;
		}
	}

	return ans;
}
 
int main() {
	ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	cin >> n;
	for (int i = 1; i <= n; i++) cin >> P[i];

	int fuck = 10000000 * 13 / n;

	int ans = n;
	while (fuck--) {
		ans = min(ans, rand_perm());
	}

	cout << ans << endl;
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 771 ms 340 KB Output is correct
2 Correct 456 ms 320 KB Output is correct
3 Correct 323 ms 320 KB Output is correct
4 Correct 2152 ms 340 KB Output is correct
5 Correct 2309 ms 316 KB Output is correct
6 Correct 1776 ms 320 KB Output is correct
7 Correct 231 ms 320 KB Output is correct
8 Correct 245 ms 316 KB Output is correct
9 Correct 2647 ms 316 KB Output is correct
10 Correct 2441 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 771 ms 340 KB Output is correct
2 Correct 456 ms 320 KB Output is correct
3 Correct 323 ms 320 KB Output is correct
4 Correct 2152 ms 340 KB Output is correct
5 Correct 2309 ms 316 KB Output is correct
6 Correct 1776 ms 320 KB Output is correct
7 Correct 231 ms 320 KB Output is correct
8 Correct 245 ms 316 KB Output is correct
9 Correct 2647 ms 316 KB Output is correct
10 Correct 2441 ms 340 KB Output is correct
11 Incorrect 2652 ms 316 KB Output isn't correct
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 771 ms 340 KB Output is correct
2 Correct 456 ms 320 KB Output is correct
3 Correct 323 ms 320 KB Output is correct
4 Correct 2152 ms 340 KB Output is correct
5 Correct 2309 ms 316 KB Output is correct
6 Correct 1776 ms 320 KB Output is correct
7 Correct 231 ms 320 KB Output is correct
8 Correct 245 ms 316 KB Output is correct
9 Correct 2647 ms 316 KB Output is correct
10 Correct 2441 ms 340 KB Output is correct
11 Incorrect 2652 ms 316 KB Output isn't correct
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 771 ms 340 KB Output is correct
2 Correct 456 ms 320 KB Output is correct
3 Correct 323 ms 320 KB Output is correct
4 Correct 2152 ms 340 KB Output is correct
5 Correct 2309 ms 316 KB Output is correct
6 Correct 1776 ms 320 KB Output is correct
7 Correct 231 ms 320 KB Output is correct
8 Correct 245 ms 316 KB Output is correct
9 Correct 2647 ms 316 KB Output is correct
10 Correct 2441 ms 340 KB Output is correct
11 Incorrect 2652 ms 316 KB Output isn't correct
12 Halted 0 ms 0 KB -