7820 2024. 01. 11 11:54:16 renn Tom és Jerry 1 (80) cpp17 Hibás válasz 60/80 582ms 14392 KiB
#include <bits/stdc++.h>
#define GOTTAGOFAST cin.tie(0); ios::sync_with_stdio(0);

using namespace std;

typedef vector<vector<int>> adj;

queue<int> nex;

inline void tombejar(adj &tom, vector<int> &tomtav, int &t)
{
    nex.push(t);
    tomtav[t] = 0;

    while(!nex.empty())
    {
        int& curr = nex.front();
        for(auto &x : tom[curr])
        {
            if(tomtav[x] > tomtav[curr]+1)
            {
                nex.push(x);
                tomtav[x] = tomtav[curr]+1;
            }
        }
        nex.pop();
    }
}

inline bool jerrybejar(adj &jerry, vector<int> &tomtav, vector<int> &jerrytav, int &j, int &c)
{
    nex = {};
    fill(jerrytav.begin(), jerrytav.end(), 200000);

    nex.push(j);
    jerrytav[j] = 0;

    while(!nex.empty())
    {
        int& curr = nex.front();
        for(auto &x : jerry[curr])
        {
            if(jerrytav[x] > jerrytav[curr]+1 && jerrytav[curr]+1 < tomtav[x])
            {
                if(x == c) return true;
                nex.push(x);
                jerrytav[x] = jerrytav[curr]+1;
            }
        }
        nex.pop();
    }
    return false;
}

int main()
{
    GOTTAGOFAST

    int n, m, t, jp, e;
    int a, b, s;
    cin >> n >> m >> t >> jp >> e;
    e--;

    adj tom(n);
    vector<int> tom_tav(n, 200000);
    adj jerry(n);
    vector<int> jerry_tav(n);

    for(;m--;)
    {
        cin >> a >> b >> s;
        a--;
        b--;
        jerry[a].push_back(b);
        jerry[b].push_back(a);
        if(s == 2)
        {
            tom[a].push_back(b);
            tom[b].push_back(a);
        }
    }

    tombejar(tom, tom_tav, (--t));

    for(;jp--;)
    {
        cin >> t;
        t--;
        cout << (jerrybejar(jerry, tom_tav, jerry_tav, t, e) ? "IGEN\n" : "NEM\n");
    }

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 60/80
1 Elfogadva 0/0 3ms 1964 KiB
2 Elfogadva 0/0 4ms 2372 KiB
3 Hibás válasz 0/4 3ms 2244 KiB
4 Elfogadva 4/4 3ms 2452 KiB
5 Elfogadva 4/4 3ms 2596 KiB
6 Elfogadva 4/4 3ms 2808 KiB
7 Elfogadva 4/4 3ms 3200 KiB
8 Elfogadva 4/4 4ms 3296 KiB
9 Elfogadva 4/4 4ms 3424 KiB
10 Elfogadva 4/4 4ms 3756 KiB
11 Elfogadva 4/4 8ms 4440 KiB
12 Elfogadva 4/4 10ms 5420 KiB
13 Elfogadva 4/4 14ms 6276 KiB
14 Elfogadva 4/4 28ms 8752 KiB
15 Elfogadva 4/4 35ms 9060 KiB
16 Elfogadva 4/4 46ms 14392 KiB
17 Elfogadva 4/4 65ms 13348 KiB
18 Elfogadva 4/4 37ms 11008 KiB
19 Időlimit túllépés 0/4 570ms 8040 KiB
20 Időlimit túllépés 0/4 574ms 8104 KiB
21 Időlimit túllépés 0/4 561ms 6844 KiB
22 Időlimit túllépés 0/4 582ms 8588 KiB