185182025-10-25 16:08:57KristófDíjazás több helyezettnekcpp17Hibás válasz 0/80490ms724 KiB
#include <iostream>
#include <vector>



using namespace std;

int k=1;

void kiiras(vector<vector<int>> &helyezes)
{
//cout<<k<<endl<<endl<<endl;
//k++;
for(int i=0;i<helyezes.size();i++)
    {
    for(int l=1;l<helyezes[i].size();l++)
    {
    cout<<helyezes[i][l]<<" ";
    }
    cout<<endl;
    }
//cout<<endl;
}

bool duplicant(vector<vector<int>> &helyezes,vector<int> inp)
{
for(auto x : helyezes)
    {
        x[0]=0;
        inp[0]=0;
    if(x==inp)
        {
        return false;
        }
    }
return true;
}


int main()
{
    int n,h;
    cin>>n>>h;
    vector<vector<int>> helyezesek(1,vector<int> (n+1));
    vector<vector<int>> ezelottihelyezesek(1,vector<int> (n+1));
    int h2=h;
    helyezesek[0][n]=1;
    h2--;
    for(int i=n-1;i>1;i--)
        {
        helyezesek[0][i]=helyezesek[0][i+1]+1;
        h2-=helyezesek[0][i];
        }
    helyezesek[0][1]=h2;
    ezelottihelyezesek=helyezesek;
    kiiras(helyezesek);
    while(!ezelottihelyezesek.empty())
        {
        helyezesek.clear();

        for(auto x : ezelottihelyezesek)
            {
            int i=1;
            //cout<<x.size()<<endl;
            if(x[i]-1>x[i+1]+1)
                {
                //cout<<x[i]<<" 1 "<<x[i+1]<<endl;
                vector<int> tmp=x;
                tmp[i]--;
                tmp[i+1]++;
                //cout<<tmp[i]<<" 1 "<<tmp[i+1]<<endl;
                if(duplicant(helyezesek,tmp))
                    {
                    helyezesek.push_back(tmp);
                    }

                }
            else if(x[1]-1==x[2]){continue;}
            i++;
            while(i+1<=x.size() )
                {
                if(x[i]>x[i+1]+1)
                {
                //cout<<x[i]<<" 2 "<<x[i+1]<<endl;
                vector<int> tmp=x;
                tmp[1]--;
                tmp[i+1]++;
                //cout<<tmp[i]<<" 2 "<<tmp[i+1]<<endl;
                if(duplicant(helyezesek,tmp))
                    {
                    helyezesek.push_back(tmp);
                    }

                }
                i++;
                }
            }
        ezelottihelyezesek=helyezesek;
        kiiras(helyezesek);
        }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Hibás válasz4ms316 KiB
subtask20/5
3Hibás válasz1ms316 KiB
4Hibás válasz1ms344 KiB
5Hibás válasz1ms364 KiB
6Hibás válasz3ms316 KiB
7Hibás válasz8ms436 KiB
subtask30/5
8Elfogadva1ms316 KiB
9Hibás válasz1ms508 KiB
10Hibás válasz1ms316 KiB
11Hibás válasz14ms316 KiB
12Hibás válasz490ms724 KiB
subtask40/15
13Elfogadva1ms316 KiB
14Hibás válasz1ms508 KiB
15Hibás válasz3ms316 KiB
16Hibás válasz14ms508 KiB
17Hibás válasz226ms428 KiB
subtask50/15
18Elfogadva1ms316 KiB
19Elfogadva4ms424 KiB
20Hibás válasz12ms316 KiB
21Hibás válasz7ms440 KiB
22Hibás válasz1ms316 KiB
subtask60/15
23Elfogadva1ms508 KiB
24Hibás válasz4ms444 KiB
25Elfogadva1ms316 KiB
26Elfogadva4ms424 KiB
27Hibás válasz12ms316 KiB
28Hibás válasz7ms440 KiB
29Hibás válasz1ms316 KiB
30Hibás válasz16ms652 KiB
31Elfogadva4ms316 KiB
32Elfogadva1ms316 KiB
33Hibás válasz1ms316 KiB
34Hibás válasz8ms400 KiB
35Elfogadva1ms508 KiB
36Elfogadva1ms316 KiB
37Hibás válasz8ms456 KiB
38Hibás válasz8ms508 KiB
39Elfogadva1ms316 KiB
subtask70/25
40Elfogadva1ms508 KiB
41Hibás válasz4ms444 KiB
42Hibás válasz1ms316 KiB
43Hibás válasz1ms344 KiB
44Hibás válasz1ms364 KiB
45Hibás válasz3ms316 KiB
46Hibás válasz8ms436 KiB
47Elfogadva1ms316 KiB
48Hibás válasz1ms508 KiB
49Hibás válasz1ms316 KiB
50Hibás válasz14ms316 KiB
51Hibás válasz490ms724 KiB
52Elfogadva1ms316 KiB
53Hibás válasz1ms508 KiB
54Hibás válasz3ms316 KiB
55Hibás válasz14ms508 KiB
56Hibás válasz226ms428 KiB
57Elfogadva1ms316 KiB
58Elfogadva4ms424 KiB
59Hibás válasz12ms316 KiB
60Hibás válasz7ms440 KiB
61Hibás válasz1ms316 KiB
62Hibás válasz16ms652 KiB
63Elfogadva4ms316 KiB
64Elfogadva1ms316 KiB
65Hibás válasz1ms316 KiB
66Hibás válasz8ms400 KiB
67Elfogadva1ms508 KiB
68Elfogadva1ms316 KiB
69Hibás válasz8ms456 KiB
70Hibás válasz8ms508 KiB
71Elfogadva1ms316 KiB
72Hibás válasz4ms316 KiB
73Elfogadva1ms316 KiB
74Hibás válasz4ms316 KiB
75Elfogadva1ms316 KiB
76Elfogadva1ms316 KiB
77Elfogadva4ms316 KiB
78Elfogadva1ms316 KiB
79Elfogadva3ms316 KiB
80Elfogadva1ms508 KiB
81Elfogadva1ms316 KiB