1533 2022. 11. 22 12:50:22 kicsiboglar Tom és Jerry 1 (80) cpp11 Hibás válasz 8/80 46ms 13240 KiB
#include <iostream>
#include <vector>
#include <deque>

#define ll long long
using namespace std;

//ifstream cin ("input.in");
//ofstream cout ("output.out");

ll n,m,i,j,a,b,c,k,tomstart,jerrystart,p;

struct element
{
    ll seen_jerry=-1, seen_tom=-1;
    bool tom;
    ll lasttom;
    vector <ll> sz;
};

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    cin>>n>>m>>tomstart>>p>>jerrystart;
    vector <element> x(n+1);
    x[tomstart].seen_tom=0;
    x[jerrystart].seen_jerry=0;
    for (i=1;i<=m;++i)
    {
        cin>>a>>b>>c;
        x[a].sz.push_back(b);
        x[b].sz.push_back(a);
        if (c==2)
        {
            x[a].tom=true;
            x[b].tom=true;
        }
    }

    deque<ll> v;
    v.push_back(tomstart);
    ll curr=0;
    while (!v.empty())
    {
        curr=v[0];
        v.pop_front();
        for (auto& e:x[curr].sz)
        {
            if (x[e].seen_tom==-1&&x[e].tom)
            {
                x[e].seen_tom=x[curr].seen_tom+1;
                v.push_back(e);
            }
        }
    }

    v.push_back(jerrystart);
    curr=0;
    while (!v.empty())
    {
        curr=v[0];
        v.pop_front();
        if (x[curr].seen_tom!=-1) x[curr].lasttom=curr;
        for (auto& e:x[curr].sz)
        {
            if (x[e].seen_jerry==-1)
            {
                x[e].seen_jerry=x[curr].seen_jerry+1;
                x[e].lasttom=x[curr].lasttom;
                v.push_back(e);
                
            }
        }
    }

    for (i=1;i<=p;++i)
    {
        cin>>a;
        if (x[a].lasttom==0) cout<<"IGEN\n";
        else 
        {
            if (x[a].seen_jerry-x[x[a].lasttom].seen_jerry>=x[x[a].lasttom].seen_tom) cout<<"NEM\n";
            else cout<<"IGEN\n";
        }
        
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 8/80
1 Elfogadva 0/0 3ms 1828 KiB
2 Hibás válasz 0/0 3ms 2564 KiB
3 Hibás válasz 0/4 2ms 2276 KiB
4 Hibás válasz 0/4 2ms 2448 KiB
5 Hibás válasz 0/4 2ms 2660 KiB
6 Hibás válasz 0/4 2ms 2868 KiB
7 Hibás válasz 0/4 2ms 3108 KiB
8 Elfogadva 4/4 3ms 3472 KiB
9 Hibás válasz 0/4 3ms 3492 KiB
10 Hibás válasz 0/4 3ms 3680 KiB
11 Hibás válasz 0/4 6ms 4092 KiB
12 Elfogadva 4/4 8ms 5016 KiB
13 Hibás válasz 0/4 12ms 5536 KiB
14 Hibás válasz 0/4 23ms 7896 KiB
15 Hibás válasz 0/4 32ms 9136 KiB
16 Hibás válasz 0/4 39ms 12640 KiB
17 Hibás válasz 0/4 46ms 12292 KiB
18 Hibás válasz 0/4 30ms 10408 KiB
19 Hibás válasz 0/4 30ms 11396 KiB
20 Hibás válasz 0/4 30ms 11620 KiB
21 Hibás válasz 0/4 28ms 10192 KiB
22 Hibás válasz 0/4 46ms 13240 KiB