Submission #1140524

#TimeUsernameProblemLanguageResultExecution timeMemory
1140524brover29Amusement Park (JOI17_amusement_park)C++20
0 / 100
16 ms2376 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...