# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1163844 | HasanV11010238 | Navigation 2 (JOI21_navigation2) | C++20 | 0 ms | 796 KiB |
#include "Anna.h"
#include <vector>
using namespace std;
namespace {
vector<int> x, y;
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>
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 + 8) % 8 == 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 time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |