Submission #916165

#TimeUsernameProblemLanguageResultExecution timeMemory
916165AbitoAmusement Park (JOI17_amusement_park)C++14
8 / 100
1790 ms262144 KiB
#include "Joi.h"
#include <bits/stdc++.h>
using namespace std;
void Joi(int N, int M, int A[], int B[], long long X, int T) {
    for (int i=0;i<N;i++) MessageBoard(i,bool(X&(1LL<<(i%60))));
    return;
}
#include "Ioi.h"
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
const int NN=1e4+5;
vector<int> adj[NN];
int n,m,calc=1,dis[NN][NN];
long long X=0;
bool vis[NN],calced[60],viss[NN][NN];
void dfs(int node,int p){
    vis[node]=true;
    if (calc==60) return;
    for (auto u:adj[node]){
        if (vis[u]) continue;
        if (!calced[u%60]){
            calced[u%60]=1;
            calc++;
        }
        int y=Move(u);
        if (y) X|=(1LL<<(u%60));
        dfs(u,node);
        if (calc==60) return;
    }
    if (p!=-1){
        int y=Move(p);
        if (y) X|=(1LL<<(p%60));
    }
    return;
}
void bfs(int s){
    queue<int> q;q.push(s);viss[s][s]=true;
    while (!q.empty()){
        int x=q.front();
        q.pop();
        for (auto u:adj[x]){
            if (viss[s][u]) continue;
            dis[s][u]=dis[s][x]+1;
            viss[s][u]=true;
            q.push(u);
        }
    }return;
}
long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) {
    n=N,m=M;
    for (int i=0;i<m;i++){
        adj[A[i]].pb(B[i]);
        adj[B[i]].pb(A[i]);
    }
    for (int i=0;i<n;i++) bfs(i);
    if (V) X|=(1LL<<(P%60));
    calced[P%60]=true;
    dfs(P,-1);
    return X;
}
#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...