Submission #565943

#TimeUsernameProblemLanguageResultExecution timeMemory
565943InternetPerson10Stray Cat (JOI20_stray)C++17
Compilation error
0 ms0 KiB
#include "Catherine.h" #include <bits/stdc++.h> using namespace std; namespace { vector<int> sixchain = {1, 1, 0, 1, 0, 0}; vector<vector<pair<int, int>>> adj; vector<int> marks, chain; struct dsu { vector<int> par, siz; dsu(int n) { par.resize(n); siz.resize(n, 1); for(int i = 0; i < n; i++) par[i] = i; } int get(int x) { if(par[x] == x) return x; return par[x] = get(par[x]); } bool unite(int x, int y) { x = get(x); y = get(y); if(x == y) return false; if(siz[x] > siz[y]) swap(x, y); par[x] = y; siz[y] += siz[x]; return true; } }; void dfs(int n, int par = -1, int na = -1) { if(na != -1) { if(adj[par].size() == 2) { chain[n] = (chain[par] + 1) % 6; marks[na] = (sixchain[chain[n]] + chain[par]) % 2; } else { chain[n] = -1; marks[na] = (1 + chain[par]) % 2; } } for(auto p : adj[n]) { int ch, nu; tie(ch, nu) = p; if(ch == par) continue; dfs(ch, n, nu); } } vector<int> marksGot; int goBack = -1; int goUp = 0; set<vector<int>> goingDown = { {1, 1, 0, 1, 0, 0}, {1, 0, 1, 0, 0, 1}, {0, 1, 0, 0, 1, 1}, {1, 0, 0, 1, 1, 0}, {0, 0, 1, 1, 0, 1}, {0, 1, 1, 0, 1, 0} }; } // namespace void Init(int A, int B) { } vector<int> y; int findVal(int x) { marksGot.push_back(x); cout << x << endl; return x; } int Move(std::vector<int> k) { y = k; int ySize = y[0] + y[1], mini = 2; if(y[0]) mini = 0; else mini = 1; if(marksGot.size() == 0) { if(ySize == 1) { goUp = 1; return findVal(mini); } if(ySize == 2) { return findVal(mini); } goUp = 1; if(y[0] == 1) return findVal(0); return findVal(1); } if(goUp) { if(ySize == 1) { return findVal(mini); } int x = marksGot.back(); return findVal(1-x); } if(goBack > -1) { goBack--; marksGot.push_back(marksGot[goBack]); if(goBack == -1) goUp = 1; return -1; } if(ySize == 0) { // Reached leaf marksGot.push_back(marksGot.back()); goUp = 1; return -1; } if(ySize == 1 && marksGot.size() < 6) { return findVal(mini); } if(ySize == 1 && marksGot.size() == 6) { if(goingDown.count(marksGot)) { goBack = 4; marksGot.push_back(marksGot[5]); return -1; } else { // Going up na pala return findVal(mini); } } if(ySize > 1) { goUp = 1; if(y[0] == 1) return findVal(0); return findVal(1); } assert(false); }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccLgCEgj.o: in function `main':
grader_anthony.cpp:(.text.startup+0x191): undefined reference to `Mark(int, int, int, int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status

/usr/bin/ld: /tmp/ccFM2VY0.o: in function `main':
grader_catherine.cpp:(.text.startup+0x41c): undefined reference to `Init(int, int)'
/usr/bin/ld: grader_catherine.cpp:(.text.startup+0xcfa): undefined reference to `Move(std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status