2997 2023. 02. 07 13:49:09 Tibi23 Tom és Jerry 1 (80) cpp11 Hibás válasz 28/80 572ms 22100 KiB
#include <iostream>
#include <vector>

using namespace std;

bool benne_van(vector<int>  x, int szam){
    for(int i=0; i<x.size();i++){
        if(x[i]==szam)
            return true;
    }
    return false;
}


    vector<int> jerry[100001];

    vector<int> tom[100001];

    int lepesT[100001];
    int lepesJ[100001];


void bejar_sz(int x, int d){  //d a távolság kezdetben 0

   // if(lepesT[x]> d)
    if(lepesT[x]!=100001)
        return;

    lepesT[x]=d;

    for(int i=0; i<tom[x].size(); i++){
        bejar_sz(tom[x][i], d+1);
    }

}

    bool elkap=false;
    bool cel = false;
    int vege;

void bejar_sz_jerry(int x, int d){  //d a távolság kezdetben 0
    //cout<<vege<<" "<<x<<endl;
    if(x==vege){
        cel=true;
        return;
    }

    if(cel==true)
        return;
   /* if(elkap==true)
        return;*/

   // if(lepesT[x]> d)
    if(lepesJ[x]!=-1)
        return;

    lepesJ[x]=d;
    //cout<<lepesJ[x]<<"--"<<lepesT[x]<<endl;
    if (lepesT[x] <= lepesJ[x]){

        //elkap=true;
        return;
    }
    for(int i=0; i<jerry[x].size(); i++){
        bejar_sz_jerry(jerry[x][i], d+1);
    }

}



int main()
{
    int hely;
    int utak;
    int tom_start;
    int m;
    //int vege;

    cin>>hely;
    cin>>utak;
    cin>>tom_start;
    cin>>m;
    cin>>vege;

    //vector<int> jerry[hely+1];

   //vector<int> tom[hely+1];

    int honnan, hova, szelesseg;

    for(int i=0; i<utak; i++){
            cin>>honnan;
            cin>>hova;
            cin>>szelesseg;

            if(benne_van(jerry[honnan], hova)==false)
                    jerry[honnan].push_back(hova);

            if(benne_van(jerry[hova], honnan)==false)
                    jerry[hova].push_back(honnan);

            if(szelesseg==2){
                if(benne_van(tom[honnan], hova)==false)
                    tom[honnan].push_back(hova);

                if(benne_van(tom[hova], honnan)==false)
                    tom[hova].push_back(honnan);
            }

    }

   /* for(int i=1; i<=hely;i++ ){
        cout<<i<<"-bol kivezeto utak:";
        for(int j=0; j<tom[i].size(); j++){
            cout<<tom[i][j]<<" ";
        }
        cout<<endl;
    }*/
    for(int i=1; i<=hely;i++){
        lepesT[i]=100001   ;
        lepesJ[i]=-1   ;
    }

    bejar_sz(tom_start, 0);
   /* for(int i=1; i<=hely;i++){
        cout<<i<<" "<<lepesT[i]<<endl   ;
    }*/

    int proba;
    for(int i=0; i<m; i++)
    {
        for(int j=1; j<=hely;j++){
        lepesJ[j]=-1   ;
        }
        cin>>proba;
        //elkap=false;
        cel = false;
        bejar_sz_jerry(proba,0);
        if( cel == true){
            cout<<"IGEN"<<endl;
        }
        else{
            cout<<"NEM"<<endl;
        }
    }

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 28/80
1 Elfogadva 0/0 6ms 11312 KiB
2 Hibás válasz 0/0 8ms 11800 KiB
3 Elfogadva 4/4 6ms 11452 KiB
4 Elfogadva 4/4 6ms 11588 KiB
5 Elfogadva 4/4 8ms 11960 KiB
6 Hibás válasz 0/4 6ms 12044 KiB
7 Hibás válasz 0/4 7ms 12272 KiB
8 Hibás válasz 0/4 8ms 12660 KiB
9 Hibás válasz 0/4 9ms 12852 KiB
10 Hibás válasz 0/4 9ms 13236 KiB
11 Hibás válasz 0/4 17ms 13716 KiB
12 Elfogadva 4/4 19ms 14340 KiB
13 Elfogadva 4/4 28ms 15364 KiB
14 Elfogadva 4/4 61ms 17396 KiB
15 Hibás válasz 0/4 75ms 17476 KiB
16 Hibás válasz 0/4 108ms 20096 KiB
17 Hibás válasz 0/4 140ms 22100 KiB
18 Elfogadva 4/4 72ms 18616 KiB
19 Időlimit túllépés 0/4 572ms 11324 KiB
20 Időlimit túllépés 0/4 555ms 11280 KiB
21 Időlimit túllépés 0/4 541ms 10372 KiB
22 Időlimit túllépés 0/4 549ms 12164 KiB