198122025-12-24 00:39:40KristófTom és Jerry 1 (80)cpp17Hibás válasz 36/80125ms5648 KiB
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int INF=500000;
int main()
{
    int n,m,tom,proba,egerlyuk;
    cin>>n>>m>>tom>>proba>>egerlyuk;
    vector<vector<int>> tomg(n+1);
    vector<vector<int>> jerryg(n+1);
    int from,to,type;
    for(int i=0;i<m;i++)
        {
        cin>>from>>to>>type;
        //cout<<from<<" "<<to<<" "<<type<<"\n";
        if(type==1)
            {
            jerryg[from].push_back(to);
            jerryg[to].push_back(from);
            }
        else
            {
            jerryg[from].push_back(to);
            jerryg[to].push_back(from);
            tomg[from].push_back(to);
            tomg[to].push_back(from);
            }
        }

    vector<int> tomd(n+1,INF);
    vector<bool> visit(n+1,false);
    queue<int> q;
    q.push(tom);visit[tom]=true;tomd[tom]=0;
    while(q.size())
        {
        int v=q.front();q.pop();
        for(int x:tomg[v])
            {
            if(!visit[x])
                {
                visit[x]=true;
                q.push(x);
                tomd[x]=tomd[v]+1;
                }
            }
        }
    vector<int> ans(n+1,INF);
    for(int i=0;i<=n;i++)visit[i]=false;
    q.push(egerlyuk);visit[egerlyuk]=true;ans[egerlyuk]=INF;
    while(q.size())
        {
        //cout<<"ALMAAAAAAAAAAA\n";
        int v=q.front();q.pop();
        for(int x:jerryg[v])
            {
            if(!visit[x])
                {
                visit[x]=true;
                q.push(x);
                //cout<<x<<endl;
                ans[x]=min(min(ans[x],ans[v]-1),tomd[x]);
                }
            }
        }
    int tmp;
    for(int i=0;i<proba;i++)
        {
        cin>>tmp;
        if(ans[tmp]<=0)
            {
            cout<<"NEM\n";
            }
        else
            {
            cout<<"IGEN\n";
            }
        }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base36/80
1Elfogadva0/01ms316 KiB
2Hibás válasz0/03ms332 KiB
3Elfogadva4/41ms316 KiB
4Elfogadva4/41ms316 KiB
5Hibás válasz0/41ms316 KiB
6Elfogadva4/41ms316 KiB
7Elfogadva4/41ms316 KiB
8Hibás válasz0/42ms316 KiB
9Hibás válasz0/43ms316 KiB
10Elfogadva4/44ms564 KiB
11Hibás válasz0/410ms820 KiB
12Elfogadva4/414ms1328 KiB
13Hibás válasz0/423ms1660 KiB
14Hibás válasz0/448ms2860 KiB
15Hibás válasz0/467ms3008 KiB
16Elfogadva4/479ms5648 KiB
17Elfogadva4/4119ms5264 KiB
18Hibás válasz0/468ms4024 KiB
19Hibás válasz0/489ms4840 KiB
20Hibás válasz0/483ms4916 KiB
21Elfogadva4/476ms3632 KiB
22Hibás válasz0/4125ms5240 KiB