145052025-01-12 22:05:20csdavidKombináció (50)cpp17Hibás válasz 36/501ms508 KiB
#include <iostream>
using namespace std;

int n, m;

void write(int a[]){
    for(int i=0; i<m; i++){
        cout << a[i] << ' ';
    }
    cout << '\n';
}

void kovetkezo(int a[]){
    for(int i=m-1; i>=0; i--){
        if(a[i]<n-m+i+1){
            a[i]++;
            for(int j=i+1; j<m; j++){
                a[j]=a[i]+j-i;
            }
            write(a);
            return;
        }
    }
}

void elozo(int a[]){
    for(int i=m-1; i>0; i--){
        if(a[i]>a[i-1]+1){
            a[i]--;
            for(int j=i+1; j<m; j++){
                a[j]=n-m+j+1;
            }
            write(a);
            return;
        }
    }
    if(a[0]>1){
        a[0]--;
        for(int j=1; j<m; j++){
            a[j]=n-m+j+1;
        }
    }
    else{
        for(int i=0; i<m; i++){
            a[i]+=n-m;
        }
    }
    write(a);
}

int main(){
    cin >> n >> m;
    int a[m+1], b[m+1];
    for(int i=0; i<m; i++){
        cin >> a[i];
        b[i]=a[i];
    }
    a[m]=n+1;
    b[m]=n+1;
    /*int c[m+1];
    int x=5000, egyenlo=1;
    while(--x){
        elozo(a);
        kovetkezo(a);
        for(int i=0; i<m; i++){
            c[i]=a[i];
        }
        elozo(a);
        egyenlo=1;
        for(int i=0; i<n; i++){
            if(a[i]!=b[i]){
                egyenlo=0;
                break;
            }
        }
        if(egyenlo==0){
            cout << "eredeti: ";
            write(b);
            cout << "nagyobb: ";
            write(c);
            cout << "uj: ";
            write(a);
        }
        for(int i=0; i<m; i++){
            a[i]=c[i];
            b[i]=c[i];
        }
    }*/
    a[m]=n+1;
    b[m]=n+1;
    elozo(a);
    kovetkezo(b);
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base36/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Hibás válasz0/21ms316 KiB
4Elfogadva2/21ms508 KiB
5Elfogadva2/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Hibás válasz0/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Hibás válasz0/41ms316 KiB
11Elfogadva4/41ms316 KiB
12Elfogadva4/41ms316 KiB
13Elfogadva4/41ms320 KiB
14Hibás válasz0/41ms316 KiB
15Elfogadva4/41ms508 KiB
16Elfogadva6/61ms316 KiB
17Elfogadva6/61ms316 KiB