#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
cin.tie(0)->sync_with_stdio(0);
int n, m, q;
cin>>n>>m>>q;
vector<vector<char>> vec(n+m+1);
for(int i=1; i<=n; i++)
{
vec[i].resize(n+1);
for(int j=i; j<=n; j+=i)
vec[i][j] = 1;
}
for(int i=n+1; i<=n+m; i++)
{
vec[i].resize(n+1);
int o;
cin>>o;
switch(o)
{
case 1:
{
int a, b;
cin>>a>>b;
for(int j=1; j<=n; j++)
vec[i][j] = vec[a][j] | vec[b][j];
break;
}
case 2:
{
int a, b;
cin>>a>>b;
for(int j=1; j<=n; j++)
vec[i][j] = vec[a][j] & vec[b][j];
break;
}
case 3:
{
int a;
cin>>a;
for(int j=1; j<=n; j++)
vec[i][j] = 1 ^ vec[a][j];
break;
}
}
}
for(int i=0; i<q; i++)
{
int a, b;
cin>>a>>b;
cout<<(vec[a][b]?"TAK":"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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int n, m, q; cin>>n>>m>>q; vector<vector<char>> vec(n+m+1); for(int i=1; i<=n; i++) { vec[i].resize(n+1); for(int j=i; j<=n; j+=i) vec[i][j] = 1; } for(int i=n+1; i<=n+m; i++) { vec[i].resize(n+1); int o; cin>>o; switch(o) { case 1: { int a, b; cin>>a>>b; for(int j=1; j<=n; j++) vec[i][j] = vec[a][j] | vec[b][j]; break; } case 2: { int a, b; cin>>a>>b; for(int j=1; j<=n; j++) vec[i][j] = vec[a][j] & vec[b][j]; break; } case 3: { int a; cin>>a; for(int j=1; j<=n; j++) vec[i][j] = 1 ^ vec[a][j]; break; } } } for(int i=0; i<q; i++) { int a, b; cin>>a>>b; cout<<(vec[a][b]?"TAK":"NIE")<<"\n"; } } |
English