Submission #1202671

#TimeUsernameProblemLanguageResultExecution timeMemory
1202671LIAAmusement Park (JOI17_amusement_park)C++20
0 / 100
18 ms2160 KiB
// Joi.cpp
#include "Joi.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

static vector<vector<int>> g;
static vector<bool> seen;
static vector<int> order;

static void dfs0(int u){
  seen[u] = true;
  order.push_back(u);
  for(int w : g[u]) if(!seen[w]) dfs0(w);
}

void Joi(int n, int m, int A[], int B[], long long X, int t){
  g.assign(n, {});
  for(int i = 0; i < m; i++){
	g[A[i]].push_back(B[i]);
	g[B[i]].push_back(A[i]);
  }
  for(int u = 0; u < n; u++){
	sort(g[u].begin(), g[u].end());
  }
  seen.assign(n, false);
  order.clear();
  dfs0(0);
  for(int i = 0; i < n; i++){
	int bit = i < 60 ? int((X >> i) & 1LL) : 0;
	MessageBoard(order[i], bit);
  }
}
// Ioi.cpp
#include "Ioi.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

static vector<vector<int>> ad;
static vector<bool> vis1;
static vector<int> bits;

static void dfs1(int u){
  vis1[u] = true;
  for(int w : ad[u]) if(!vis1[w]){
	  int bit = Move(w);
	  bits.push_back(bit);
	  dfs1(w);
	  Move(u);
	}
}

long long Ioi(int n, int m, int A[], int B[], int p, int v, int t){
  ad.assign(n, {});
  for(int i = 0; i < m; i++){
	ad[A[i]].push_back(B[i]);
	ad[B[i]].push_back(A[i]);
  }
  for(int u = 0; u < n; u++){
	sort(ad[u].begin(), ad[u].end());
  }
  vector<int> parent(n, -1);
  queue<int> q;
  parent[0] = 0;
  q.push(0);
  while(!q.empty()){
	int u = q.front(); q.pop();
	for(int w : ad[u]) if(parent[w] == -1){
		parent[w] = u;
		q.push(w);
	  }
  }
  int cur = p;
  while(cur != 0){
	int par = parent[cur];
	Move(par);
	cur = par;
  }
  bits.clear();
  bits.push_back(v);
  vis1.assign(n, false);
  dfs1(0);
  long long X = 0;
  for(int i = 0; i < 60 && i < (int)bits.size(); i++){
	X |= ( (long long)bits[i] << i );
  }
  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...