181652025-10-08 07:24:25MrkzKerékpártúra (50 pont)cpp17Futási hiba 0/501ms512 KiB
#include <bits/stdc++.h>

using namespace std;
int N,M,K;
bool p;
int kapcsm[100][100];
vector<int> St;
vector< pair <int, int> > Kapcs;
vector<int> megoldas;
int q=0;

bool vanMegoldas(int szint){
    return St[szint]==K;
}
bool Jo(int szint){
    return (kapcsm[St[szint]][St[szint-1]]==1);
}
void Back(int szint)
{
    if(vanMegoldas(szint-1) && szint>1)
        p=true;
    else
        for(int i=1; i<=N; i++)
        {
            St[szint]=i;
            if(Jo(szint))
                Back(szint+1);
        }
}
bool vissza(int pont){
    St[0]=pont;
    p=false;
    Back(1);
    int n=1;
    while(St[n]!=0){
        n++;
    }
    for(int i=1;i<=n;i++)
        St[i]=0;
    return p;
}

int main()
{
    //ifstream f("terkep.in");
    cin>>N>>M>>K;
    for(int i=1;i<=M;i++){
        cin>>Kapcs[i].first>>Kapcs[i].second;
        kapcsm[Kapcs[i].first][Kapcs[i].second]=1;
    }
    for(int i=1;i<=N;i++){
        if(i!=K){
            if(vissza(i)){
                megoldas[++q]=i;
            }
        }
    }
    cout<<q<<endl;
    for(int i=1;i<=q;i++)
        cout<<i<<" ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Futási hiba0/01ms316 KiB
2Futási hiba0/01ms320 KiB
3Futási hiba0/21ms316 KiB
4Futási hiba0/21ms316 KiB
5Futási hiba0/21ms316 KiB
6Futási hiba0/21ms316 KiB
7Futási hiba0/21ms316 KiB
8Futási hiba0/21ms316 KiB
9Futási hiba0/21ms316 KiB
10Futási hiba0/21ms508 KiB
11Futási hiba0/21ms316 KiB
12Futási hiba0/21ms316 KiB
13Futási hiba0/21ms316 KiB
14Futási hiba0/21ms316 KiB
15Futási hiba0/31ms316 KiB
16Futási hiba0/41ms316 KiB
17Futási hiba0/41ms316 KiB
18Futási hiba0/31ms316 KiB
19Futási hiba0/31ms316 KiB
20Futási hiba0/31ms500 KiB
21Futási hiba0/31ms316 KiB
22Futási hiba0/31ms512 KiB