219602026-01-14 11:17:37RRoliKövetkező permutáció (50 pont)cpp17Time limit exceeded 21/50300ms556 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) {
    bool voltn = false;
    for(int i = 0; i < pos; i++) {
        if(v[i] > v[pos]) voltn = true;
        if(v[i] < v[pos] && voltn) 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
base21/50
1Accepted0/02ms500 KiB
2Time limit exceeded0/0282ms512 KiB
3Accepted1/11ms316 KiB
4Accepted1/12ms556 KiB
5Accepted1/11ms316 KiB
6Accepted1/11ms500 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms492 KiB
9Accepted2/21ms508 KiB
10Accepted2/21ms316 KiB
11Accepted1/12ms316 KiB
12Accepted1/12ms316 KiB
13Accepted1/12ms316 KiB
14Accepted1/11ms316 KiB
15Time limit exceeded0/3298ms316 KiB
16Accepted3/398ms508 KiB
17Time limit exceeded0/3300ms316 KiB
18Time limit exceeded0/3280ms316 KiB
19Time limit exceeded0/3275ms316 KiB
20Time limit exceeded0/3286ms508 KiB
21Time limit exceeded0/3300ms316 KiB
22Time limit exceeded0/3280ms316 KiB
23Time limit exceeded0/3287ms316 KiB
24Time limit exceeded0/3280ms316 KiB
25Time limit exceeded0/2300ms316 KiB
26Accepted2/23ms316 KiB