#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
const int LIM=5e4+7;
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
int n, m, q;
cin >> n >> m >> q;
bitset<LIM>B[n+m+1];
for(int i=1; i<=n; ++i) {
for(int j=i; j<=n; j+=i) {
B[i][j]=1;
}
}
rep(i, m) {
int t;
cin >> t;
if(t==1) {
int a, b;
cin >> a >> b;
B[n+i+1]=B[a]|B[b];
} else if(t==2) {
int a, b;
cin >> a >> b;
B[n+i+1]=B[a]&B[b];
} else {
int a;
cin >> a;
B[n+i+1]=B[a]^B[1];
}
}
while(q--) {
int a, b;
cin >> a >> b;
cout << (B[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 | #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() const int LIM=5e4+7; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, m, q; cin >> n >> m >> q; bitset<LIM>B[n+m+1]; for(int i=1; i<=n; ++i) { for(int j=i; j<=n; j+=i) { B[i][j]=1; } } rep(i, m) { int t; cin >> t; if(t==1) { int a, b; cin >> a >> b; B[n+i+1]=B[a]|B[b]; } else if(t==2) { int a, b; cin >> a >> b; B[n+i+1]=B[a]&B[b]; } else { int a; cin >> a; B[n+i+1]=B[a]^B[1]; } } while(q--) { int a, b; cin >> a >> b; cout << (B[a][b]?"TAK":"NIE") << '\n'; } } |
English