125872024-12-24 18:39:00ercseferencKerékpártúra (50 pont)cpp17Hibás válasz 0/501ms512 KiB
#include <iostream>
#include <fstream>
#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;
    ifstream f("szamok.txt");
    f>>n>>m>>k;
    pont a[n+1]; bool nincs=0;
    for(int i=0; i<m; i++){
        f>>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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms320 KiB
2Hibás válasz0/01ms320 KiB
3Hibás válasz0/21ms320 KiB
4Hibás válasz0/21ms320 KiB
5Hibás válasz0/21ms320 KiB
6Hibás válasz0/21ms344 KiB
7Hibás válasz0/21ms320 KiB
8Hibás válasz0/21ms320 KiB
9Hibás válasz0/21ms320 KiB
10Hibás válasz0/21ms320 KiB
11Hibás válasz0/21ms320 KiB
12Hibás válasz0/21ms512 KiB
13Hibás válasz0/21ms320 KiB
14Hibás válasz0/21ms320 KiB
15Hibás válasz0/31ms508 KiB
16Hibás válasz0/41ms320 KiB
17Hibás válasz0/41ms320 KiB
18Hibás válasz0/31ms320 KiB
19Hibás válasz0/31ms320 KiB
20Hibás válasz0/31ms320 KiB
21Hibás válasz0/31ms320 KiB
22Hibás válasz0/31ms320 KiB