219562026-01-14 11:13:30RRoliKövetkező permutáció (50 pont)cpp17Wrong answer 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;
}
SubtaskSumTestVerdictTimeMemory
base6/50
1Wrong answer0/01ms316 KiB
2Wrong answer0/03ms444 KiB
3Accepted1/11ms336 KiB
4Accepted1/11ms316 KiB
5Wrong answer0/11ms316 KiB
6Wrong answer0/11ms388 KiB
7Wrong answer0/21ms316 KiB
8Wrong answer0/21ms336 KiB
9Wrong answer0/21ms316 KiB
10Accepted2/21ms316 KiB
11Wrong answer0/11ms316 KiB
12Wrong answer0/11ms316 KiB
13Wrong answer0/11ms316 KiB
14Wrong answer0/11ms508 KiB
15Wrong answer0/31ms316 KiB
16Wrong answer0/31ms316 KiB
17Wrong answer0/31ms512 KiB
18Wrong answer0/32ms316 KiB
19Wrong answer0/37ms456 KiB
20Wrong answer0/33ms316 KiB
21Wrong answer0/33ms456 KiB
22Wrong answer0/36ms460 KiB
23Wrong answer0/34ms464 KiB
24Wrong answer0/34ms544 KiB
25Time limit exceeded0/2301ms316 KiB
26Accepted2/23ms464 KiB