152842025-02-18 08:34:50antiKövetkező permutáció (50 pont)cpp17Időlimit túllépés 12/50300ms508 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool is_312_pattern_free(const vector<int>& perm) {
    int N = perm.size();

    vector<int> left_smaller;
    vector<int> right_larger;

    bool right = false, left = false;

    right_larger = perm;
    sort(right_larger.begin(), right_larger.end(), std::greater<int>());

    for (int i = 0; i < N-1; ++i) {
        int current = perm[i];

        auto it = find(right_larger.begin(), right_larger.end(), current);
        right_larger.erase(it);

        int L = 0, R = 0;
        for (int smaller : left_smaller) {
            if (smaller > current) {
                left = true;
                L = smaller;
            }
        }
        for(int larger : right_larger) {
            if(larger > current){
                right = true;
                R = larger;
            }
        }
        if(left && right && L>R){
            return false;
        }else{
            right = false;
            left = false;
        }

        left_smaller.push_back(current);

        sort(left_smaller.begin(), left_smaller.end());
    }

    return true;
}

int main() {
    int n;
    cin >> n;
    vector<int> perm(n);
    for(int i=0; i<n; i++){
        cin >> perm[i];
    }
    next_permutation(perm.begin(), perm.end());
    while(!is_312_pattern_free(perm)){
        next_permutation(perm.begin(), perm.end());
    }
    for(int i=0; i<n; i++){
        cout << perm[i] << " ";
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base12/50
1Elfogadva0/01ms316 KiB
2Időlimit túllépés0/0284ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/271ms392 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/21ms316 KiB
11Időlimit túllépés0/1300ms316 KiB
12Időlimit túllépés0/1300ms316 KiB
13Időlimit túllépés0/1279ms316 KiB
14Időlimit túllépés0/1282ms316 KiB
15Időlimit túllépés0/3284ms500 KiB
16Időlimit túllépés0/3284ms316 KiB
17Időlimit túllépés0/3284ms316 KiB
18Időlimit túllépés0/3282ms316 KiB
19Időlimit túllépés0/3279ms316 KiB
20Időlimit túllépés0/3280ms316 KiB
21Időlimit túllépés0/3275ms328 KiB
22Időlimit túllépés0/3279ms316 KiB
23Időlimit túllépés0/3280ms316 KiB
24Időlimit túllépés0/3280ms508 KiB
25Időlimit túllépés0/2284ms316 KiB
26Időlimit túllépés0/2284ms316 KiB