#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
int q, dp[N], in[N], out[N], rin[N], t, cnt = 1;
vector<pair<int, int>> g[N];
void dfs(int u, int p){
in[u] = ++t;
rin[t] = u;
for(auto v : g[u]) if(v.first != p) dp[v.first] = (dp[u] ^ v.second), dfs(v.first, u);
out[u] = t;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> q;
for(int i = 1;i<=q;i++){
string tp;
cin >> tp;
if(tp == "Add"){
int u, w;
cin >> u >> w;
g[++cnt].push_back({u, w});
g[u].push_back({cnt, w});
memset(dp, 0, sizeof dp);
t = 0;
dfs(1, -1);
}else{
int a, b;
cin >> a >> b;
int x = dp[a] ^ dp[b], ans = 0;
for(int j = in[b];j<=out[b];j++){
ans = max(ans, x ^ (dp[rin[j]] ^ dp[b]));
}
cout << ans << '\n';
}
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |