125882024-12-24 18:46:33ercseferencKerékpártúra (50 pont)cpp17Wrong answer 0/50125ms3640 KiB
#include <iostream>
#include <vector>
using namespace std;
struct pont{vector<int>kim; vector<int>bem; bool van=0; bool jo=0;};
int main()
{
    int n,m,k,x,y,p;
    cin>>n>>m>>k;
    pont a[n+1]; bool nincs=0;
    for(int i=0; i<m; i++){
        cin>>x>>y;
        a[x].kim.push_back(y);
        a[y].bem.push_back(x);}
    a[k].van=1; vector<int>l1; vector<int>l2; vector<int>l3;
    for(int i=0; i<a[k].bem.size(); i++){
        l1.push_back(a[k].bem[i]); l3.push_back(a[k].bem[i]); a[a[k].bem[i]].van=1;}
   while(nincs==0){
        for(int i=0; i<l1.size(); i++){
            for(int j=0; j<a[l1[i]].bem.size(); j++){
                if(a[a[l1[i]].bem[j]].van==0){a[a[l1[i]].bem[j]].van=1;
                    l2.push_back(a[l1[i]].bem[j]);}}}
        if (l2.size()==0) nincs=1;
        l1.clear(); p=l3.size();
        for(int i=0; i<l2.size(); i++){
            l1[i]=l2[i]; l3.push_back(l2[i]);}
        l2.clear();}
    for(int i=0; i<l3.size(); i++){a[l3[i]].jo=1;}
    l1.clear(); l2.clear(); l3.clear(); nincs=0;
    for(int i=1; i<=n; i++){a[i].van=0;} a[k].van=1;
    for(int i=0; i<a[k].kim.size(); i++){
        if(a[a[k].kim[i]].jo==1)
            {l1.push_back(a[k].kim[i]);l3.push_back(a[k].kim[i]); a[a[k].kim[i]].van=1;}}
    while(nincs==0){
        for(int i=0; i<l1.size(); i++){
            for(int j=0; j<a[l1[i]].kim.size(); j++){
                if(a[a[l1[i]].kim[j]].van==0 && a[a[l1[i]].kim[j]].jo==1){a[a[l1[i]].kim[j]].van=1;
                    l2.push_back(a[l1[i]].kim[j]);}}}
        if (l2.size()==0) nincs=1;
        l1.clear(); p=l3.size();
        for(int i=0; i<l2.size(); i++){
            l1[i]=l2[i]; l3.push_back(l2[i]);}
        l2.clear();}
    vector<int>l4;
    for(int i=0; i<l3.size(); i++){l4.push_back(l3[i]);}
    for(int i=0; i<l3.size(); i++){
        for(int j=0; j<a[l3[i]].kim.size(); j++){
            if(a[a[l3[i]].kim[j]].van==0){a[a[l3[i]].kim[j]].van=1; l4.push_back(a[l3[i]].kim[j]);}}}
    if(l4.size()==0) cout<<0;
    else{
        cout<<l4.size()<<endl;
        for(int i=0; i<l4.size(); i++){cout<<l4[i]<<" ";}}
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base0/50
1Accepted0/01ms320 KiB
2Wrong answer0/019ms1336 KiB
3Wrong answer0/21ms500 KiB
4Wrong answer0/21ms500 KiB
5Wrong answer0/21ms320 KiB
6Wrong answer0/21ms340 KiB
7Wrong answer0/21ms320 KiB
8Wrong answer0/22ms320 KiB
9Wrong answer0/23ms320 KiB
10Wrong answer0/23ms436 KiB
11Wrong answer0/24ms320 KiB
12Wrong answer0/210ms552 KiB
13Wrong answer0/210ms644 KiB
14Runtime error0/219ms896 KiB
15Wrong answer0/332ms1712 KiB
16Wrong answer0/435ms1848 KiB
17Wrong answer0/450ms2104 KiB
18Wrong answer0/343ms1924 KiB
19Wrong answer0/337ms1844 KiB
20Wrong answer0/3112ms3324 KiB
21Runtime error0/3123ms3568 KiB
22Runtime error0/3125ms3640 KiB