Submission #1280593

#TimeUsernameProblemLanguageResultExecution timeMemory
1280593avighna길고양이 (JOI20_stray)C++20
0 / 100
24 ms12276 KiB
#include "Anthony.h" #include <queue> #include <string> #include <vector> std::vector<int> Mark(int N, int M, int A, int B, std::vector<int> U, std::vector<int> V) { std::vector<int> x(M, -1); std::vector<std::vector<int>> adj(N); for (int i = 0; i < M; ++i) { adj[U[i]].push_back(V[i]); adj[V[i]].push_back(U[i]); } std::vector<bool> vis(N); std::vector<int> dep(N); std::queue<int> q; q.push(0); vis[0] = true; while (!q.empty()) { int u = q.front(); q.pop(); for (int &i : adj[u]) { if (vis[i]) { continue; } vis[i] = true; dep[i] = dep[u] + 1; q.push(i); } } std::string s = "110100"; for (int i = 0; i < M; ++i) { x[i] = s[std::min(dep[U[i]], dep[V[i]]) % 6] - '0'; } return x; }
#include "Catherine.h" #include <algorithm> #include <cassert> #include <string> #include <vector> namespace { int A, B; bool exploratory = true; std::string enc; std::string corr = "110100"; std::vector<std::string> poss; int prev = 0; } // namespace void Init(int A, int B) { ::A = A; ::B = B; for (int i = 0; i < 6; ++i) { std::string t; for (int j = 0; j < 6; ++j) { t.push_back(corr[(i + j) % 6]); } poss.push_back(t); } } int Move(std::vector<int> y) { auto add = [&](int x) { enc.push_back(x + '0'); return prev = x; }; int z = y[0], o = y[1]; auto available = [&]() -> int { if (z == 0) { return 1; } if (o == 0) { return 0; } return z > o; }; if (z + o == 0) { exploratory = false; return -1; } if (!exploratory) { if (z == o) { return add(!prev); } return add(available()); } if (enc.length() == 6) { exploratory = false; auto it = std::find(poss.begin(), poss.end(), enc); if (it == poss.end()) { return -1; } } return add(available()); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...