228942026-01-16 07:51:01IMatyiDíjazás több helyezettnekcpp17Time limit exceeded 55/80600ms548 KiB
#include <iostream>
#include <cstdlib>
using namespace std;


int st[20],n,top,p, H,E,s=0;
void init(){
    st[top]=st[top-1];

}
int nextel(){
    if (st[top]>1){  //itt meg kell optimizalni
        st[top]--; s--;
        return 1;
    }
    else return 0;
}

int valid(){
    if(s>E) return false;
    if(s<E)
        if(top==H) return false;
        else return true;

    return true;
}

int result(){
    return (s==E) &&(top==H);
}

void write(){
    for(int i=1;i<=H;i++)
        cout<<st[i]<<' ';
    cout<<endl;
}

void backtrack(){
    int vk;
    st[1]=E-(H*(H-1)/2);
    for(int i=2;i<H;i++) st[i]=H-i+1;
    st[H]=2;
    s=E+1;
    top=H;
    //write();
    //init();
    while(top>0){
        do {} while ((vk=nextel()) && !valid());
        if (vk)
            if (result())
                write();
            else {
                top++;init();s=s+st[top];}
        else{
           s=s-st[top]; top--;
        }
    }
}

int main(){
    cin>>H;
    cin>>E;

    backtrack();
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted4ms316 KiB
subtask25/5
3Accepted1ms316 KiB
4Accepted1ms316 KiB
5Accepted1ms316 KiB
6Accepted1ms508 KiB
7Accepted1ms316 KiB
subtask35/5
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
12Accepted2ms508 KiB
subtask415/15
13Accepted1ms316 KiB
14Accepted1ms316 KiB
15Accepted1ms316 KiB
16Accepted2ms316 KiB
17Accepted2ms316 KiB
subtask515/15
18Accepted2ms316 KiB
19Accepted3ms500 KiB
20Accepted3ms316 KiB
21Accepted3ms548 KiB
22Accepted1ms316 KiB
subtask615/15
23Accepted1ms316 KiB
24Accepted4ms412 KiB
25Accepted2ms316 KiB
26Accepted3ms500 KiB
27Accepted3ms316 KiB
28Accepted3ms548 KiB
29Accepted1ms316 KiB
30Accepted3ms316 KiB
31Accepted4ms316 KiB
32Accepted1ms316 KiB
33Accepted2ms508 KiB
34Accepted6ms316 KiB
35Accepted1ms316 KiB
36Accepted2ms316 KiB
37Accepted12ms508 KiB
38Accepted28ms408 KiB
39Accepted4ms508 KiB
subtask70/25
40Accepted1ms316 KiB
41Accepted4ms412 KiB
42Accepted1ms316 KiB
43Accepted1ms316 KiB
44Accepted1ms316 KiB
45Accepted1ms508 KiB
46Accepted1ms316 KiB
47Accepted1ms316 KiB
48Accepted1ms316 KiB
49Accepted1ms316 KiB
50Accepted1ms316 KiB
51Accepted2ms508 KiB
52Accepted1ms316 KiB
53Accepted1ms316 KiB
54Accepted1ms316 KiB
55Accepted2ms316 KiB
56Accepted2ms316 KiB
57Accepted2ms316 KiB
58Accepted3ms500 KiB
59Accepted3ms316 KiB
60Accepted3ms548 KiB
61Accepted1ms316 KiB
62Accepted3ms316 KiB
63Accepted4ms316 KiB
64Accepted1ms316 KiB
65Accepted2ms508 KiB
66Accepted6ms316 KiB
67Accepted1ms316 KiB
68Accepted2ms316 KiB
69Accepted12ms508 KiB
70Accepted28ms408 KiB
71Accepted4ms508 KiB
72Accepted361ms408 KiB
73Accepted34ms492 KiB
74Time limit exceeded574ms512 KiB
75Accepted2ms316 KiB
76Accepted8ms316 KiB
77Time limit exceeded600ms316 KiB
78Accepted4ms316 KiB
79Time limit exceeded579ms500 KiB
80Accepted184ms316 KiB
81Time limit exceeded583ms508 KiB