198102025-12-24 00:38:17KristófTom és Jerry 1 (80)cpp17Hibás válasz 0/80282ms6452 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
base0/80
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/06ms316 KiB
3Hibás válasz0/41ms316 KiB
4Hibás válasz0/41ms512 KiB
5Hibás válasz0/42ms316 KiB
6Hibás válasz0/41ms316 KiB
7Hibás válasz0/43ms316 KiB
8Hibás válasz0/44ms484 KiB
9Hibás válasz0/47ms316 KiB
10Hibás válasz0/48ms568 KiB
11Hibás válasz0/428ms884 KiB
12Hibás válasz0/435ms1424 KiB
13Hibás válasz0/459ms1912 KiB
14Hibás válasz0/4122ms3508 KiB
15Hibás válasz0/4181ms3776 KiB
16Hibás válasz0/4180ms6380 KiB
17Hibás válasz0/4282ms6452 KiB
18Hibás válasz0/4168ms4604 KiB
19Hibás válasz0/4181ms5684 KiB
20Hibás válasz0/4179ms5488 KiB
21Hibás válasz0/4163ms4404 KiB
22Hibás válasz0/4273ms6260 KiB