88962024-02-03 10:47:20hackemonKombináció (50)cpp17Hibás válasz 48/503ms3228 KiB
#include <bits/stdc++.h>
using namespace std;



int main()
{
    //freopen("be2.txt", "r", stdin);
    //freopen("ki.txt", "w", stdout);

    int n, k;
    cin >> n >> k;

    vector<int> a(k), b(k); 

    bool checker1 = true, checker2 = true;

    for(int i = 0;i < k;i++ ) {
        cin >> a[i];
        b[i] = a[i];
        if(a[i] != i+1) checker1 = false;
        if(a[i] != n - k + i + 1) checker2 = false;
    }
    
    int pos = 0; 
    if(a[k - 1] + 1 <= n) {
            pos = k - 1; 
    } else {
    for(int i = k-2;i > 0;i-- ) {
        if(a[i] - 1  >  a[i - 1]) {
            pos = i-1; 
            break;
        }
    }
    }

    a[pos]++;

    for(int i = pos + 1;i < k;i++ ) {
        a[i] = a[i-1] + 1; 
    }
        
    for(int i = k-1;i > 0;i--) {
        if(b[i] - 1 > b[i-1]) {
            pos = i;
            break;
        } else if(i == 1) {
            pos = 0; 
        }
    }
    b[pos]--;

    
    for(int i = k - 1;i > pos;i-- ) {
        b[i] = n - k + i + 1; 
    }

    if(checker1) {
        for(int i = 0;i < k;i++ ) {
            cout << n - k  + i + 1 << ' ';
        }
    } else 
    for(int i = 0;i < k;i++ ) { 
        cout << b[i] << ' ';
    }
    cout << endl;
    if(checker2) {
        for(int i = 0;i < k;i++ ) {
            cout << i+1 << ' ';
        }
    } else 
    for(int i = 0;i < k;i++ ) { 
        cout << a[i] << ' ';
    }   
    cout << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base48/50
1Hibás válasz0/03ms2088 KiB
2Elfogadva0/03ms2048 KiB
3Elfogadva2/23ms2416 KiB
4Elfogadva2/23ms2540 KiB
5Elfogadva2/22ms2512 KiB
6Elfogadva2/22ms2504 KiB
7Elfogadva2/23ms2756 KiB
8Elfogadva2/23ms2964 KiB
9Elfogadva2/22ms2928 KiB
10Elfogadva4/43ms3096 KiB
11Elfogadva4/42ms2948 KiB
12Részben helyes2/43ms3076 KiB
13Elfogadva4/42ms3080 KiB
14Elfogadva4/43ms3212 KiB
15Elfogadva4/42ms3220 KiB
16Elfogadva6/63ms3228 KiB
17Elfogadva6/62ms3220 KiB