219562026-01-14 11:13:30RRoliKövetkező permutáció (50 pont)cpp17Hibás válasz 6/50301ms544 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++;
    if(k == n) return -1;
	return k;
}

bool check(int pos) {
    if(pos >= 2 && v[pos] > v[pos-1] && v[pos] < v[pos-2]) return false;
    return true;
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(nullptr);

    cin >> n;
    v.resize(n);
    for(int i = 0; i < n; i++) {cin >> v[i]; v[i]--;}

    sz.resize(n, true);
    int level = n-1;
    while(level < n) {
        sz[v[level]] = false;
        do {
           v[level] = kov(v[level]); 
        } while(v[level] != -1 && !check(level));
        

        if(v[level] == -1) level--;
        else {sz[v[level]] = true; level++;}
    }

    for(auto i : v) cout << i+1 << ' ';

	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/03ms444 KiB
3Elfogadva1/11ms336 KiB
4Elfogadva1/11ms316 KiB
5Hibás válasz0/11ms316 KiB
6Hibás válasz0/11ms388 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms336 KiB
9Hibás válasz0/21ms316 KiB
10Elfogadva2/21ms316 KiB
11Hibás válasz0/11ms316 KiB
12Hibás válasz0/11ms316 KiB
13Hibás válasz0/11ms316 KiB
14Hibás válasz0/11ms508 KiB
15Hibás válasz0/31ms316 KiB
16Hibás válasz0/31ms316 KiB
17Hibás válasz0/31ms512 KiB
18Hibás válasz0/32ms316 KiB
19Hibás válasz0/37ms456 KiB
20Hibás válasz0/33ms316 KiB
21Hibás válasz0/33ms456 KiB
22Hibás válasz0/36ms460 KiB
23Hibás válasz0/34ms464 KiB
24Hibás válasz0/34ms544 KiB
25Időlimit túllépés0/2301ms316 KiB
26Elfogadva2/23ms464 KiB