132962025-01-07 12:42:35AGergoTom és Jerry 1 (80)cpp17Runtime error 36/80600ms6196 KiB
#include <bits/stdc++.h>

using namespace std;
bool closed;
int HolePos;
vector<int>TomTime;
vector<int>JerryTime;
vector<vector<int>> TomGraph;
vector<vector<int>> JerryGraph;
void TomSearch(int pos, int time)
{
    for(int x:TomGraph[pos])
    {
        if(TomTime[x] > time+1)
        {
            TomTime[x] = time+1;
            TomSearch(x,time+1);
        }
    }
}
void JerrySearch(int pos, int time)
{
    if(!closed)
    {
        for(int x:JerryGraph[pos])
        {
            if(x == HolePos && TomTime[x]>time+1)
            {
                JerryTime[x] = time+1;
                closed = true;
            }
            if(JerryTime[x] > time+1 && TomTime[x]>time+1)
            {
                JerryTime[x] = time+1;
                JerrySearch(x,time+1);
            }
        }
    }
}
int main()
{
    cin.tie(0);
    iostream::sync_with_stdio(0);
    int pointCount,edgeCount,TomPos,tries,e1,e2,width,JerryStart;
    cin >> pointCount >> edgeCount >> TomPos >> tries >> HolePos;
    TomTime.resize(pointCount,INT_MAX);
    JerryTime.resize(pointCount,INT_MAX);
    TomGraph.resize(pointCount+1,vector<int>());
    JerryGraph.resize(pointCount+1,vector<int>());
    vector<bool> ans(tries);
    vector<int> reset = JerryTime;
    for(int i = 0; i < edgeCount; i++)
    {
        cin >> e1 >> e2 >> width;
        if(width == 2)
        {
            TomGraph[e1].push_back(e2);
            TomGraph[e2].push_back(e1);
        }
        JerryGraph[e1].push_back(e2);
        JerryGraph[e2].push_back(e1);
    }
    TomSearch(TomPos,0);
    for(int i =0; i< tries; i++)
    {
        JerryTime = reset;
        closed = false;
        cin >> JerryStart;
        JerrySearch(JerryStart,0);
        if(JerryTime[HolePos] != INT_MAX)
        {
            ans[i] = true;
        }
        else
        {
            ans[i] = false;
        }
    }
    for(int c:ans)
    {
        if(c)
        {
            cout << "IGEN\n";
        }
        else
        {
            cout << "NEM\n";
        }
    }
}
SubtaskSumTestVerdictTimeMemory
base36/80
1Accepted0/01ms316 KiB
2Accepted0/08ms564 KiB
3Runtime error0/41ms508 KiB
4Accepted4/41ms316 KiB
5Accepted4/41ms316 KiB
6Accepted4/41ms316 KiB
7Accepted4/42ms476 KiB
8Accepted4/47ms316 KiB
9Accepted4/48ms720 KiB
10Accepted4/48ms564 KiB
11Accepted4/464ms912 KiB
12Accepted4/4458ms1536 KiB
13Time limit exceeded0/4600ms1968 KiB
14Time limit exceeded0/4588ms3380 KiB
15Time limit exceeded0/4591ms3376 KiB
16Time limit exceeded0/4584ms6192 KiB
17Time limit exceeded0/4579ms6196 KiB
18Time limit exceeded0/4584ms4404 KiB
19Time limit exceeded0/4587ms5428 KiB
20Time limit exceeded0/4583ms5428 KiB
21Time limit exceeded0/4583ms3892 KiB
22Time limit exceeded0/4592ms5984 KiB