Submission #394495

#TimeUsernameProblemLanguageResultExecution timeMemory
394495jsannemoAmusement Park (JOI17_amusement_park)C++14
28 / 100
39 ms5560 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 vector<bool> seen; static void dfs(int at) { seen[at] = true; int b = (int)bit.size(); bit[at] = b % 60; ord.push_back(at); for (int it : adj[at]) { if (seen[it]) continue; dfs(it); ord.push_back(at); } } void Joi(int N, int M, int A[], int B[], long long X, int T) { adj.resize(N); seen.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); ord.pop_back(); for(int i = 0; i < N; i++){ MessageBoard(i, (X >> bit[i]) & 1); } }
#include "Ioi.h" #include <vector> #include <map> #include <algorithm> #include <iostream> using namespace std; static vector<vector<int>> adj; static vector<int> ord; static map<int, int> bit; static vector<bool> seen; static void dfs(int at) { seen[at] = true; int b = (int)bit.size(); bit[at] = b % 60; ord.push_back(at); for (int it : adj[at]) { if (seen[it]) continue; dfs(it); ord.push_back(at); } } long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) { adj.resize(N); seen.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); ord.pop_back(); 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(); cerr << "go to " << ord[at] << endl; 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...