Submission #1111359

#TimeUsernameProblemLanguageResultExecution timeMemory
1111359yhkhooDrivers (BOI24_drivers)C++17
100 / 100
127 ms7752 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int, int> pii; typedef pair<int, pii> pip; typedef pair<pii, pii> ppp; #define fi first #define se second const int MAXN = 200005; int p[MAXN]; int get_parent(int x){ if(p[x] == x) return x; p[x] = get_parent(p[x]); return p[x]; } void union_set(int u, int v){ u = get_parent(u); v = get_parent(v); if(u==v) return; p[u] = v; } int main(){ cin.tie(0); ios_base::sync_with_stdio(0); int n, m, u; cin >> n >> m >> u; deque<pip> r; for(int i=0; i<m; i++){ pip tmp; cin >> tmp.se.fi >> tmp.se.se >> tmp.fi; r.push_back(tmp); } sort(r.begin(), r.end()); deque<ppp> c; for(int i=0; i<u; i++){ ppp tmp; cin >> tmp.se.fi >> tmp.se.se >> tmp.fi.fi; tmp.fi.se = i; c.push_back(tmp); } sort(c.begin(), c.end()); for(int i=1; i<=n; i++){ p[i] = i; } vector<bool> ans(u, 0); for(auto i: c){ while(r.size() && r.front().fi <= i.fi.fi){ union_set(r.front().se.fi, r.front().se.se); r.pop_front(); } ans[i.fi.se] = get_parent(i.se.fi) == get_parent(i.se.se); } for(auto i: ans){ if(i){ cout << "TAIP\n"; } else{ cout << "NE\n"; } } return 0; }
#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...