#include <bits/stdc++.h>
#include <vector>
#include "Joi.h"
using namespace std;
using ll = long long;
const ll N=10005;
ll tinn[N],timr=-1;
vector<ll>gg[N];
void dfss(ll v){
tinn[v]=(++timr)%60;
for(ll to:gg[v]){
if(tinn[to]!=-1)continue;
dfss(to);
}
}
void Joi(int n, int m, int U[], int VV[], long long x, int T) {
for(ll i=0;i<m;i++){
ll v=VV[i],u=U[i];
gg[v].push_back(u);
gg[u].push_back(v);
}
for(ll i=0;i<n;i++)tinn[i]=-1;
dfss(0);
for(ll i=0;i<n;i++){
MessageBoard(i,(x>>tinn[i])&1);
}
}
#include <bits/stdc++.h>
#include "Ioi.h"
using namespace std;
using ll = long long;
const ll N=10005;
ll ans,msg[N];
ll pr[N],used[N],sz[N];
vector<ll> g[N];
ll tin[N],timer=-1;
void dfs(ll v){
tin[v]=(++timer)%60;
sz[v]=1;
for(ll to:g[v]){
if(tin[to]!=-1)continue;
pr[to]=v;
dfs(to);
sz[v]+=sz[to];
}
}
void calc(ll v){
ans|=(1ll<<(tin[v]))*msg[v];
used[v]=1;
for(ll to:g[v]){
if(used[to])continue;
msg[to]=Move(to);
calc(to);
}
if(v)msg[pr[v]]=Move(pr[v]);
}
long long Ioi(int n, int m, int U[], int VV[], int P, int V, int T) {
for(ll i=0;i<m;i++){
ll v=VV[i],u=U[i];
g[v].push_back(u);
g[u].push_back(v);
}
msg[P]=V;
for(ll i=0;i<n;i++)tin[i]=-1;
dfs(0);
while(sz[P]<60){
P=pr[P];
msg[P]=Move(P);
}for(ll i=0;i<n;i++)used[i]=0;
calc(P);
return ans;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |