Submission #1194969

#TimeUsernameProblemLanguageResultExecution timeMemory
1194969yellowtoadStray Cat (JOI20_stray)C++20
85 / 100
38 ms12608 KiB
#include "Anthony.h" #include <iostream> #include <vector> #define f first #define s second using namespace std; namespace { int FunctionExample(int i, int A) { return i % A; } vector<pair<int,int>> edge[20010]; vector<int> ans, a = {0,0,1,0,1,1}; int st[2] = {1,3}; } // namespace void dfs(int u, int v, int cnt, int lst) { for (int i = 0; i < edge[u].size(); i++) { if (edge[u][i].f != v) { if ((u == 0) || (edge[u].size() > 2)) { ans[edge[u][i].s] = 1-lst; dfs(edge[u][i].f,u,st[1-lst],1-lst); } else { ans[edge[u][i].s] = a[cnt]; dfs(edge[u][i].f,u,(cnt+1)%6,a[cnt]); } } } } std::vector<int> Mark(int n, int m, int A, int B, std::vector<int> U, std::vector<int> V) { ans.resize(m); for (int i = 0; i < m; i++) edge[U[i]].push_back({V[i],i}), edge[V[i]].push_back({U[i],i}); if (m == n-1) { dfs(0,-1,0,0); return ans; } else { } return ans; }
#include "Catherine.h" #include <iostream> #include <vector> using namespace std; namespace { bool first, found; int freq[2], lst; vector<int> a; vector<vector<int>> ok = { {0, 1, 1, 0, 1}, {0, 0, 1, 1, 0}, {1, 0, 0, 1, 1}, {0, 1, 0, 0, 1}, {1, 0, 1, 0, 0}, {1, 1, 0, 1, 0} }; } // namespace void Init(int A, int B) { first = 1; found = 0; freq[0] = freq[1] = 0; } int Move(std::vector<int> Y) { vector<int> y; for (int i = 0; i < Y.size(); i++) for (int j = 1; j <= Y[i]; j++) y.push_back(i); if (first) { first = 0; if (y.size() == 2) { a = y; lst = y[1]; return lst; } else { found = 1; freq[0] = freq[1] = 0; for (int i = 0; i < y.size(); i++) freq[y[i]]++; if (freq[0] == 1) { lst = 0; return lst; } else { lst = 1; return lst; } } } else { if (found) { if (y.size() == 1) { lst = y[0]; return y[0]; } else { lst = 1-lst; return lst; } } else { if (y.size() == 0) { found = 1; return -1; } else if (y.size() == 1) { a.push_back(y[0]); if (a.size() == 5) { found = 1; for (int i = 0; i < 6; i++) { if (a == ok[i]) { goto skip; } } return -1; skip:; lst = y[0]; return lst; } else { lst = y[0]; return lst; } } else { y.push_back(lst); freq[0] = freq[1] = 0; for (int i = 0; i < y.size(); i++) freq[y[i]]++; found = 1; if (freq[lst] == 1) return -1; else { lst = 1-lst; return lst; } } } } }
#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...