# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
829962 | 2023-08-18T16:19:13 Z | vqpahmad | Stray Cat (JOI20_stray) | C++14 | 0 ms | 0 KB |
#include<bits/stdc++.h> #include "Anthony.h" using namespace std; #define int long long #define ll long long #define pii pair<int,int> #define F first #define S second #define endl '\n' #define pb push_back #define sz(a) (int)a.size() #define all(a) a.begin(),a.end() const int mod = 1e9 + 7; const int N = 1e6 + 15; const ll inf = 1e18; namespace my2{ int X[N]; vector<pii> adj[N]; void dfs(int node, int par, int cur){ for (auto it : my2::adj[node]){ if (it.F == node) continue; my2::X[it.S] = (cur+1)%3; dfs(it.F, node, my2::X[it.S]); } } } // namespace vector<int> Mark(int N, int M, int A, int B, vector<int> U, vector<int> V) { vector<int> x(M); for (int i=0;i<M;i++){ my2::adj[U[i]].pb({V[i],i}); my2::adj[V[i]].pb({U[i],i}); } my2::dfs(1,0,-1); for (int i=0;i<M;i++){ x[i] = my2::X[i]; } return x; } namespace my{ int A, B; int variable_example = 0; } // namespace void Init(int A, int B) { my::A = A; my::B = B; } int Move(std::vector<int> y) { if (y[0]&&y[1]) return 0; if (y[1]&&y[2]) return 1; if (y[2]&&y[0]) return 2; return -1; }