146392025-01-23 06:36:09RRoliKövetkező permutáció (50 pont)cpp17Wrong answer 31/50149ms548 KiB
#include <bits/stdc++.h>
using namespace std;

int n;
vector<int> v;
vector<bool> sz;

int kov(int k) {
	k++;
	while(k <= n && sz[k]) k++;
	return k;
}

int main() {
	cin >> n;
	v.resize(n+1, 0);
	sz.resize(n+1, true);
	for(int i = 1; i <= n; i++) cin >> v[i];

	int p = n-1;
	while(v[p] > v[p+1]) {
		sz[v[p]] = false;
		p--;
	}
	sz[v[n]] = false;
	sz[v[p]] = false;

	v[p] = kov(v[p]);
	sz[v[p]] = true;

	int t = n;
	while(kov(v[p]) <= n) {
		v[t] = kov(v[p]);
		sz[v[t]] = true;
		t--;
	}
	while(kov(0) <= n) {
		v[t] = kov(0);
		sz[v[t]] = true;
		t--;
	}

	for(int i = 1; i <= n; i++) cout << v[i] << ' ';

	return 0;
}
SubtaskSumTestVerdictTimeMemory
base31/50
1Accepted0/01ms316 KiB
2Accepted0/04ms316 KiB
3Wrong answer0/11ms512 KiB
4Accepted1/11ms316 KiB
5Accepted1/11ms500 KiB
6Accepted1/11ms316 KiB
7Wrong answer0/21ms316 KiB
8Accepted2/21ms316 KiB
9Wrong answer0/21ms316 KiB
10Wrong answer0/21ms352 KiB
11Accepted1/11ms316 KiB
12Accepted1/11ms376 KiB
13Accepted1/11ms316 KiB
14Accepted1/11ms316 KiB
15Wrong answer0/31ms508 KiB
16Accepted3/31ms508 KiB
17Accepted3/31ms316 KiB
18Accepted3/32ms504 KiB
19Accepted3/34ms316 KiB
20Wrong answer0/34ms316 KiB
21Wrong answer0/34ms432 KiB
22Accepted3/37ms436 KiB
23Wrong answer0/36ms316 KiB
24Accepted3/34ms380 KiB
25Accepted2/2149ms548 KiB
26Accepted2/24ms316 KiB