Submission #1013865

#TimeUsernameProblemLanguageResultExecution timeMemory
1013865Almonther새로운 문제 (POI13_mor)C++98
100 / 100
1365 ms117812 KiB
#include <bits/stdc++.h>
 
#define suiii ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define co cout<<
//#pragma GCC optimize("O3,Ofast,unroll-loops")
//#pragma GCC target("avx2,sse3,sse4,avx")
using namespace std;
//stuff
short n,m;
int k;
short dist[5001][5001][2];
vector<short>v[5001];
void bfs(short x){
    queue<pair<short,short>>q;
    q.push({x,0});
    while(q.size()){
        auto inp=q.front();
        q.pop();
        short a,b;
        a=inp.first;
        b=inp.second;
        if(dist[x][a][b%2]!=-1) continue;
        dist[x][a][b%2]=b;
        for(auto i:v[a]){
            q.push({i,b+1});
        }
    }
}
void solve(){
    memset(dist,-1,sizeof(dist));
    cin>>n>>m>>k;
    for(short i=0;i<m;i++){
        short a,b;
        cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    for(short i=1;i<=n;i++) bfs(i);
    while(k--){
        short a,b;
        int c;
        cin>>a>>b>>c;
        if(a==b&&v[a].size()==0) co "NIE\n";
        else if(dist[a][b][c%2]<=c&&dist[a][b][c%2]!=-1) co "TAK\n";
        else co "NIE\n";
    }
}
 
int main()
{
    suiii
    int tt=1;
    // cin>>tt;
    while(tt--){
        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...