Submission #1226164

#TimeUsernameProblemLanguageResultExecution timeMemory
1226164eriksuenderhaufNavigation 2 (JOI21_navigation2)C++20
0 / 100
0 ms824 KiB
#include "Anna.h" #include <bits/stdc++.h> using namespace std; namespace { } // namespace void Anna(int N, int K, vector<int> R, vector<int> C) { for (int r = 0; r < N; r++) { for (int c = 0; c < N; c++) { int i = (r % 3) * 3 + (c % 3); if (i == 0) { SetFlag(r, c, 1); continue; } if (i == 8) { SetFlag(r, c, 2); continue; } int d = max(abs(R[i - 1] - r), abs(C[i - 1] - c)); int v; if (d <= 1) { v = (R[i - 1] - r + 1) * 3 + (C[i - 1] - c + 1) + 2; } else { v = 11; if (R[i - 1] > r) v += 0; else if (R[i - 1] < r) v += 1; else if (C[i - 1] > c) v += 2; else if (C[i - 1] < c) v += 3; } SetFlag(r, c, v); } } }
#include "Bruno.h" #include <bits/stdc++.h> using namespace std; namespace { } // namespace vector<int> Bruno(int K, vector<int> value) { int r, c; for (int i = 0; i < 9; i++) { if (value[i] == 1) { r = i / 3; c = i % 3; break; } } vector<int> res(K, 0); for (int i = 0; i < K; i++) { int cc = (c + i + 1) % 3; int rr = (r + (i + 1) / 3) % 3; int v = value[3 * rr + cc]; if (2 <= v && v < 11) { v -= 2; int dc = v % 3 - 1; int dr = v / 3 - 1; rr += dr; cc += dc; if (rr > r) v = 0; else if (rr < r) v = 1; else if (cc > c) v = 2; else if (cc < c) v = 3; } else { v -= 11; } res[i] = v; } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...