9982022-02-20 07:57:38Szin AttilaKombináció (50)cpp14Időlimit túllépés 2/50298ms1876 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ÖsszpontTesztVerdiktIdőMemória
base2/50
1Elfogadva0/02ms1812 KiB
2Időlimit túllépés0/0296ms940 KiB
3Időlimit túllépés0/2286ms1000 KiB
4Elfogadva2/230ms1860 KiB
5Időlimit túllépés0/2298ms936 KiB
6Időlimit túllépés0/2245ms1008 KiB
7Hibás válasz0/21ms1876 KiB
8Időlimit túllépés0/2298ms1080 KiB
9Időlimit túllépés0/2298ms1020 KiB
10Időlimit túllépés0/4298ms1084 KiB
11Időlimit túllépés0/4266ms1152 KiB
12Időlimit túllépés0/4231ms964 KiB
13Időlimit túllépés0/4203ms1036 KiB
14Időlimit túllépés0/4202ms1104 KiB
15Időlimit túllépés0/4241ms1108 KiB
16Időlimit túllépés0/6248ms980 KiB
17Időlimit túllépés0/6203ms1048 KiB