Submission #394481

#TimeUsernameProblemLanguageResultExecution timeMemory
394481jsannemoAmusement Park (JOI17_amusement_park)C++14
10 / 100
244 ms262152 KiB
#include "Joi.h" #include <vector> #include <map> using namespace std; static vector<vector<int>> adj; static vector<int> ord; static map<int, int> bit; static void dfs(int at, int par) { int b = (int)bit.size(); bit[at] = b % 60; ord.push_back(at); for (int it : adj[at]) { if (it == par) continue; dfs(it, at); ord.push_back(at); } } void Joi(int N, int M, int A[], int B[], long long X, int T) { adj.resize(N); for (int i = 0; i < M; i ++) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } dfs(0, -1); for(int i = 0; i < N; i++){ MessageBoard(i, (X >> bit[i]) & 1); } }
#include "Ioi.h" #include <vector> #include <map> #include <algorithm> using namespace std; static vector<vector<int>> adj; static vector<int> ord; static map<int, int> bit; static void dfs(int at, int par) { int b = (int)bit.size(); bit[at] = b % 60; ord.push_back(at); for (int it : adj[at]) { if (it == par) continue; dfs(it, at); ord.push_back(at); } } long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) { adj.resize(N); for (int i = 0; i < M; i ++) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } dfs(0, -1); map<int, int> bits; bits[bit[P]] = V; int at = find(ord.begin(), ord.end(), P) - ord.begin(); while ((int)bits.size() != 60) { at = (at + 1) % ord.size(); bits[bit[ord[at]]] = Move(ord[at]); } long long X = 0; for (int i = 0; i < 60; ++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...