146342025-01-22 07:51:18RRoliKövetkező permutáció (50 pont)cpp17Hibás válasz 31/50148ms552 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);
	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/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Hibás válasz0/21ms400 KiB
8Elfogadva2/21ms316 KiB
9Hibás válasz0/21ms332 KiB
10Hibás válasz0/21ms552 KiB
11Elfogadva1/11ms316 KiB
12Elfogadva1/11ms316 KiB
13Elfogadva1/12ms316 KiB
14Elfogadva1/11ms316 KiB
15Hibás válasz0/31ms316 KiB
16Elfogadva3/31ms348 KiB
17Elfogadva3/31ms316 KiB
18Elfogadva3/32ms316 KiB
19Elfogadva3/34ms424 KiB
20Hibás válasz0/34ms440 KiB
21Hibás válasz0/34ms464 KiB
22Elfogadva3/37ms440 KiB
23Hibás válasz0/36ms548 KiB
24Elfogadva3/34ms316 KiB
25Elfogadva2/2148ms448 KiB
26Elfogadva2/24ms444 KiB