제출 #512102

#제출 시각아이디문제언어결과실행 시간메모리
512102PoPularPlusPlus새로운 문제 (POI13_mor)C++17
100 / 100
2025 ms66936 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define pb(e) push_back(e) #define sv(a) sort(a.begin(),a.end()) #define sa(a,n) sort(a,a+n) #define mp(a,b) make_pair(a,b) #define vf first #define vs second #define ar array #define all(x) x.begin(),x.end() const int inf = 0x3f3f3f3f; const ll mod = 1000000007; const double PI=3.14159265358979323846264338327950288419716939937510582097494459230; bool remender(ll a , ll b){return a%b;} void solve(){ int n , m; cin >> n >> m; int k; cin >> k; vector<int> adj[n + 1]; for(int i = 0; i < m; i++){ int a,b; cin >> a >> b; adj[a].pb(b); adj[b].pb(a); } vector<pair<pair<int,int> , pair<int,int>>> v; for(int i = 0; i < k; i++){ int a , b; cin >> a >> b; int c; cin >> c; v.pb(mp(mp(a,b) , mp(c,i))); } sv(v); //cout << "came" << endl; int dis[n + 1][2]; int pos = 0; string ans[k]; for(int i = 1; i <= n; i++){ memset(dis,-1,sizeof dis); dis[i][0] = 0; queue<pair<int,int>> q; q.push(mp(i,0)); while(q.size()){ pair<int,int> node = q.front(); q.pop(); for(int j : adj[node.vf]){ if(dis[j][(node.vs + 1) % 2] == -1){ dis[j][(node.vs + 1) % 2] = dis[node.vf][node.vs] + 1; q.push(mp(j,(node.vs + 1)%2)); } } } while(pos < k && v[pos].vf.vf == i){ if(dis[v[pos].vf.vs][v[pos].vs.vf % 2] == -1 || dis[v[pos].vf.vs][v[pos].vs.vf % 2] > v[pos].vs.vf || adj[v[pos].vf.vs].size() == 0){ ans[v[pos].vs.vs] = "NIE\n"; } else ans[v[pos].vs.vs] = "TAK\n"; pos++; } } //cout << "came" << endl; for(auto i : ans)cout << i; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); //freopen("rblock.in", "r", stdin); //freopen("rblock.out", "w", stdout); //int t;cin >> t;while(t--) solve(); 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...
#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...