147892025-02-02 17:07:06KateTaylorKövetkező permutáció (50 pont)cpp17Hibás válasz 31/504ms596 KiB
#include <iostream>
#include <vector>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> p(n);
	for (int i = 0; i < n; i++) cin >> p[i];
	vector<bool> used(n, true);
	used[p[n - 1] - 1] = false;
	int len = 0;
	for (int i = n - 2; i >= 0; i--) {
		len++;
		used[p[i] - 1] = false;
		if (p[i] < p[i + 1]) {
			p[i]++;
			while (used[p[i] - 1]) p[i]++;
			used[p[i] - 1] = true;
			break;
		}
	}
	int ptr = p[n - 1 - len] - 1;
	for (int i = n - len; i < n; i++) {
		while (true) {
			ptr--;
			if (ptr == -1) ptr = n - 1;
			if (!used[ptr]) {
				used[ptr] = true;
				p[i] = ptr + 1;
				break;
			}
		}
	}
	for (int x : p) cout << x << " ";
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base31/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Hibás válasz0/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms508 KiB
7Hibás válasz0/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Hibás válasz0/21ms316 KiB
10Hibás válasz0/21ms500 KiB
11Elfogadva1/11ms316 KiB
12Elfogadva1/11ms316 KiB
13Elfogadva1/11ms596 KiB
14Elfogadva1/11ms316 KiB
15Hibás válasz0/31ms316 KiB
16Elfogadva3/31ms316 KiB
17Elfogadva3/31ms316 KiB
18Elfogadva3/32ms316 KiB
19Elfogadva3/34ms428 KiB
20Hibás válasz0/34ms472 KiB
21Hibás válasz0/34ms500 KiB
22Elfogadva3/34ms508 KiB
23Hibás válasz0/34ms476 KiB
24Elfogadva3/34ms436 KiB
25Elfogadva2/24ms316 KiB
26Elfogadva2/24ms508 KiB