#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, m, q;
cin >> n >> m >> q;
vector<bitset<50000>> tab(n+m);
for(int i=0; i<n; i++){
int j = i+1;
while(j <= n){
tab[i][j-1] = 1;
j += i+1;
}
// cout << i+1 << ": " << tab[i] << "\n";
}
for(int i=0; i<m; i++){
int t;
cin >> t;
if(t == 1){
int x, y;
cin >> x >> y;
x--;
y--;
tab[n + i] = tab[x] | tab[y];
} else if(t == 2){
int x, y;
cin >> x >> y;
x--;
y--;
tab[n + i] = tab[x] & tab[y];
} else{
int x;
cin >> x;
x--;
tab[n + i] = ~tab[x];
}
// cout << n+i+1 << ": " << tab[n + i] << "\n";
}
for(int i=0; i<q; i++){
int x, v;
cin >> x >> v;
x--;
v--;
bool ans = tab[x][v];
if(ans){
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include <bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n, m, q; cin >> n >> m >> q; vector<bitset<50000>> tab(n+m); for(int i=0; i<n; i++){ int j = i+1; while(j <= n){ tab[i][j-1] = 1; j += i+1; } // cout << i+1 << ": " << tab[i] << "\n"; } for(int i=0; i<m; i++){ int t; cin >> t; if(t == 1){ int x, y; cin >> x >> y; x--; y--; tab[n + i] = tab[x] | tab[y]; } else if(t == 2){ int x, y; cin >> x >> y; x--; y--; tab[n + i] = tab[x] & tab[y]; } else{ int x; cin >> x; x--; tab[n + i] = ~tab[x]; } // cout << n+i+1 << ": " << tab[n + i] << "\n"; } for(int i=0; i<q; i++){ int x, v; cin >> x >> v; x--; v--; bool ans = tab[x][v]; if(ans){ cout << "TAK\n"; } else{ cout << "NIE\n"; } } } |
English