Submission #1320821

#TimeUsernameProblemLanguageResultExecution timeMemory
1320821zhhhhDrivers (BOI24_drivers)C++20
0 / 100
1 ms332 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long
int p[100000];
int dis[1000000] = {0};
int find(int x){
    if(p[x]==x)return x;
    return p[x] = find(p[x]);
}
void unite(int a, int b, int d){
    int pa = find(a);
    int pb = find(b);
    if(pa!=pb){
        p[pb] = pa;
    }
     dis[pb]=d+dis[a];
}
signed main() {

	int n, a, b; cin >> n >> a >> b;
    for(int i = 1; i <=n; i++)p[i]=i;
    for(int i = 0; i < a; i++){
        int a, b, d; cin >> a >> b >> d;
        unite(a, b, d);
    }
    for(int i = 0; i < b; i++){
        int a, b, d; cin >> a >> b >> d;
        if(find(a)!=find(b) or dis[b] >d){
            cout << "NE" << endl;
        }
        else{
            cout << "TAIP";
        }
    }

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...