Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int n, m, q, a, b, zl=2, pre[1000111], low[1000111], odw[1000111], p[1000111];
- vector<int> v[1000111];
- vector<pair<int, int> > r;
- void dfs(int u, int oj){
- pre[u] = low[u] = zl++;
- odw[u] = 1;
- for(auto i = v[u].begin(); i!=v[u].end(); i++){
- if( *i!=oj ){
- if( !odw[*i] ){
- dfs(*i, u);
- low[u] = min(low[u], low[*i]);
- if( low[*i]>=pre[u] ) p[u] = 1;
- }
- else
- low[u] = min(low[u], pre[*i]);
- }
- }
- }
- int main()
- {
- scanf("%d%d", &n, &m);
- for(int i = 0; i<m; i++){
- scanf("%d%d", &a, &b);
- r.push_back({a, b});
- v[a].push_back(b);
- v[b].push_back(a);
- }
- int ok = 0;
- pre[1] = 1; odw[1] = 1;
- for(int i = 0; i<v[1].size(); i++){
- if( !odw[v[1][i]] ){
- ok++;
- dfs(v[1][i], 1);
- }
- }
- if( ok>1 ) p[1] = 1;
- scanf("%d", &q);
- for(int i = 0; i<q; i++){
- scanf("%d", &a);
- if( p[a]==1 ) printf("NIE\n");
- else printf("TAK\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement