128542025-01-02 15:26:26ercseferencKerékpártúra (50 pont)cpp17Wrong answer 13/50129ms3636 KiB
#include <iostream>
#include <algorithm>
#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,l2,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]);}}}
    for(int i=0; i<a[k].kim.size(); i++){if(a[a[k].kim[i]].van==0){a[a[k].kim[i]].van=1; l4.push_back(a[k].kim[i]);}}
    sort(l4.begin(),l4.end());
    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
base13/50
1Accepted0/01ms320 KiB
2Accepted0/019ms1336 KiB
3Wrong answer0/21ms320 KiB
4Wrong answer0/21ms320 KiB
5Wrong answer0/21ms320 KiB
6Accepted2/21ms320 KiB
7Accepted2/21ms508 KiB
8Accepted2/23ms320 KiB
9Wrong answer0/23ms320 KiB
10Wrong answer0/23ms320 KiB
11Wrong answer0/24ms568 KiB
12Accepted2/212ms676 KiB
13Accepted2/210ms628 KiB
14Runtime error0/219ms1080 KiB
15Wrong answer0/332ms1704 KiB
16Wrong answer0/435ms1668 KiB
17Wrong answer0/450ms1916 KiB
18Wrong answer0/343ms1844 KiB
19Wrong answer0/337ms1692 KiB
20Accepted3/3112ms3380 KiB
21Runtime error0/3129ms3604 KiB
22Runtime error0/3125ms3636 KiB