998 2022. 02. 20 07:57:38 Szin Attila Kombináció (50) cpp14 Időlimit túllépés 2/50 298ms 1876 KiB
#include <bits/stdc++.h>
using namespace std;
#define InTheNameOfGod ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);
using ll = long long;

const int maxN = 2e5 + 5;
const int MOD = 1e9 + 7;

string s, curr;
int n,m;

bool kisebb(string a) {
    for(int i = 0; i < m-1; i++) {
        if(a[i] > a[i+1]) return false;
    }

    return s.substr(0, m) > a.substr(0, m);
}

bool nagyobb(string a) {
    for(int i = 0; i < m-1; i++) {
        if(a[i] > a[i+1]) return false;
    }
    
    return s.substr(0, m) < a.substr(0, m);
}

int main() {



   InTheNameOfGod;
    
    
    cin >> n >> m;

    vector<bool> volt(n+1, 0);

    
    for(int i = 0; i < m; i++) {
        int x;
        cin >> x;
        volt[x] = 1;

        s.push_back('0' + x);
    }

    curr = s;
    for(int i = n; i > 0; i--) if(!volt[i]) curr.push_back('0' + i);

    while(!kisebb(curr)) prev_permutation(curr.begin(), curr.end());
    for(int i = 0; i < m; i++) cout << curr[i] << ' ';
    cout << "\n";
    curr = s;

    for(int i = 1; i <= n; i++) if(!volt[i]) curr.push_back('0' + i);

    while(!nagyobb(curr)) next_permutation(curr.begin(), curr.end());

    for(int i = 0; i < m; i++) cout << curr[i] << ' ';

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 2/50
1 Elfogadva 0/0 2ms 1812 KiB
2 Időlimit túllépés 0/0 296ms 940 KiB
3 Időlimit túllépés 0/2 286ms 1000 KiB
4 Elfogadva 2/2 30ms 1860 KiB
5 Időlimit túllépés 0/2 298ms 936 KiB
6 Időlimit túllépés 0/2 245ms 1008 KiB
7 Hibás válasz 0/2 1ms 1876 KiB
8 Időlimit túllépés 0/2 298ms 1080 KiB
9 Időlimit túllépés 0/2 298ms 1020 KiB
10 Időlimit túllépés 0/4 298ms 1084 KiB
11 Időlimit túllépés 0/4 266ms 1152 KiB
12 Időlimit túllépés 0/4 231ms 964 KiB
13 Időlimit túllépés 0/4 203ms 1036 KiB
14 Időlimit túllépés 0/4 202ms 1104 KiB
15 Időlimit túllépés 0/4 241ms 1108 KiB
16 Időlimit túllépés 0/6 248ms 980 KiB
17 Időlimit túllépés 0/6 203ms 1048 KiB