Submission #799491

#TimeUsernameProblemLanguageResultExecution timeMemory
799491burythelightdeepwithinStray Cat (JOI20_stray)C++14
0 / 100
27 ms16756 KiB
#include <bits/stdc++.h> #include "Anthony.h" using namespace std; vector <pair <int, int> > adj[20003], adj_dfs[20003]; vector <int> plan; int vs[20003], sz[20003], start = 1; int route[6] = {0, 1, 0, 0, 1, 1}; queue <int> q; vector <int> leaf; void bfs(){ while(!q.empty()){ int u = q.front(); vs[u] = 1; q.pop(); for (auto e: adj[u]){ int v = e.first, id = e.second; if (!vs[v]){ q.push(v); vs[v] = 1; adj_dfs[u].push_back({v, id}); //adj_dfs[v].push_back({u, id}); sz[u]++; } } } } void dfs(int u, int mark, int last){ vs[u] = 1; if (sz[u] > 1){ mark = 0; start = (last^1); } for (auto e: adj_dfs[u]){ int v = e.first, id = e.second; if (!vs[v]){ plan[id] = (route[mark]^start); dfs(v, (mark+1)%6, plan[id]); } } } vector <int> Mark(int N, int M, int A, int B, vector<int> U, vector <int> V){ for (int i = 0; i < M; i++){ adj[U[i]].push_back({V[i], i}); adj[V[i]].push_back({U[i], i}); plan.push_back(-1); } q.push(0); bfs(); for (int i = 0; i < N; i++){ vs[i] = 0; } dfs(0, 0, 0); for (int i = 0; i < M; i++){ if (plan[i] == -1){ plan[i] = 2; } } return plan; }
#include <bits/stdc++.h> #include "Catherine.h" using namespace std; int first = -1, last = -1, cnt = 0, one, zero; void Init(int A, int B){ } int Move(vector <int> y){ if (cnt == 0){ if (y[0] == 0){ if (y[1] == 1){ cnt = 3; } else if (y[1] == 2) { cnt++; } last = 1; one++; first = last; return 1; } else if (y[1] == 0){ if (y[0] == 1){ cnt = 3; } else if (y[0] == 2) { cnt++; } zero++; last = 0; first = last; return 0; } if (y[0] > y[1]){ last = 1; one++; return 1; } else if (y[0] < y[1]){ last = 0; zero++; return 0; } else { last = 0; zero++; return 0; } } if (cnt == 1){ if (y[last^1] != 1){ cnt = 3; return -1; } if (y[0] == 0 && y[1] == 0){ cnt = 3; return -1; } if (last == 0){ if (y[1] == 1){ cnt++; last = 1; one++; return 1; } else if (y[0] == 1){ cnt++; last = 0; zero++; return 0; } } else { if (y[1] == 1){ cnt++; last = 1; one++; return 1; } else if (y[0] == 1){ cnt++; last = 0; zero++; return 0; } } } if (cnt == 2){ if (y[last^1] != 1){ cnt = 3; return -1; } if (y[0] == 0 && y[1] == 0){ cnt = 3; return -1; } if (zero == 2){ if (y[1] == 1){ cnt++; return -1; } else if (y[0] == 1){ cnt++; return 0; } } else if (one == 2){ if (y[0] == 1){ cnt++; return 0; } else if (y[1] == 1){ cnt++; return -1; } } else { if (first == 0){ if (y[1] == 1){ cnt++; return -1; } else if (y[0] == 1){ cnt++; return 0; } } else { if (y[0] == 1){ cnt++; return -1; } else if (y[1] == 1){ cnt++; return 1; } } } } if (y[0] == 1){ return 0; } else { return 1; } }
#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...