146392025-01-23 06:36:09RRoliKövetkező permutáció (50 pont)cpp17Hibás válasz 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base31/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/04ms316 KiB
3Hibás válasz0/11ms512 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms500 KiB
6Elfogadva1/11ms316 KiB
7Hibás válasz0/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Hibás válasz0/21ms316 KiB
10Hibás válasz0/21ms352 KiB
11Elfogadva1/11ms316 KiB
12Elfogadva1/11ms376 KiB
13Elfogadva1/11ms316 KiB
14Elfogadva1/11ms316 KiB
15Hibás válasz0/31ms508 KiB
16Elfogadva3/31ms508 KiB
17Elfogadva3/31ms316 KiB
18Elfogadva3/32ms504 KiB
19Elfogadva3/34ms316 KiB
20Hibás válasz0/34ms316 KiB
21Hibás válasz0/34ms432 KiB
22Elfogadva3/37ms436 KiB
23Hibás válasz0/36ms316 KiB
24Elfogadva3/34ms380 KiB
25Elfogadva2/2149ms548 KiB
26Elfogadva2/24ms316 KiB