#include <bits/stdc++.h> using namespace std; vector<bitset<50000>> tab; void fastscan(int &n){ n=0; for(char c=getchar();c>47 && c<58;c=getchar()){ n=10*n+c-48; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n,m,q; fastscan(n); fastscan(m); fastscan(q); tab.resize(n+m); for (int i = 1; i<=n; i++){ for (int j = i; j<=n; j+=i){ tab[i-1][j-1]=1; } } for (int i = n,a,b,c; i<n+m; i++){ fastscan(c); fastscan(a); if (c<3)fastscan(b); if (c==1)tab[i]=(tab[a-1]|tab[b-1]); else if (c==2)tab[i]=(tab[a-1]&tab[b-1]); else tab[i]=(~tab[a-1]); } for (int i = 1,a,b; i<=q; i++){ fastscan(a); fastscan(b); if (tab[a-1][b-1])cout << "TAK\n"; else cout << "NIE\n"; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <bits/stdc++.h> using namespace std; vector<bitset<50000>> tab; void fastscan(int &n){ n=0; for(char c=getchar();c>47 && c<58;c=getchar()){ n=10*n+c-48; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n,m,q; fastscan(n); fastscan(m); fastscan(q); tab.resize(n+m); for (int i = 1; i<=n; i++){ for (int j = i; j<=n; j+=i){ tab[i-1][j-1]=1; } } for (int i = n,a,b,c; i<n+m; i++){ fastscan(c); fastscan(a); if (c<3)fastscan(b); if (c==1)tab[i]=(tab[a-1]|tab[b-1]); else if (c==2)tab[i]=(tab[a-1]&tab[b-1]); else tab[i]=(~tab[a-1]); } for (int i = 1,a,b; i<=q; i++){ fastscan(a); fastscan(b); if (tab[a-1][b-1])cout << "TAK\n"; else cout << "NIE\n"; } } |