제출 #1163724

#제출 시각아이디문제언어결과실행 시간메모리
1163724HasanV11010238Navigation 2 (JOI21_navigation2)C++20
0 / 100
0 ms804 KiB
#include "Anna.h" #include <vector> using namespace std; vector<int> x, y; namespace { int FunctionExample(int r, int c, int K) { int su = 3 * (r % 3) + c % 3; int wh = 0; for (int i = 0; i < x.size(); i++){ if (x[i] == r && y[i] == c){ wh = i + 1; } } if (su >= 7){ return 56 + wh + 1; } else{ int dir = -1; if (y[su] > c){ dir = 0; } else if (y[su] < c){ dir = 1; } else if (x[su] > r){ dir = 2; } else{ dir = 3; } if (dir == -1){ return 32 + su + 1; } return 8 * dir + wh + 1; } } } // namespace void Anna(int N, int K, std::vector<int> R, std::vector<int> C) { x = R, y = C; for (int i = 0; i < N; i++){ for (int j = 0; j < N; j++){ SetFlag(i, j, FunctionExample(i, j, K)); } } }
#include "Bruno.h" #include <vector> #include <iostream> using namespace std; namespace { } vector<int> v; int getdir(int x, int y){ if (x == 1 && y == 1) return 4; if (y == 2) return 0; if (y == 0) return 1; if (x == 2) return 2; return 3; } int fi(int k){ int sx, sy; for (int i = 0 ; i < 9; i++){ int x = i / 3, y = i % 3; if (v[i] % 8 - 1 == k){ return getdir(x, y); } if (v[i] >= 56){ sx = x, sy = y; } } sx = 2 - sx, sy = 2 - sy; for (int i = 0; i < 9; i++){ int x = i / 3, y = i % 3; int nx = (x + sx) % 3, ny = (y + sy) % 3; if (nx * 3 + ny == k){ return v[i] / 8; } } return 0; } std::vector<int> Bruno(int K, std::vector<int> value) { vector<int> res(K, 0); v = value; for (int i = 0; i < 9; i++){ v[i]--; } for (int i = 0; i < K; i++){ res[i] = fi(i); } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...