Submission #1132930

#TimeUsernameProblemLanguageResultExecution timeMemory
1132930adaawfNavigation 2 (JOI21_navigation2)C++20
0 / 100
5 ms816 KiB
#include <iostream>
#include <vector>
#include "Anna.h"
using namespace std;
void Anna(int n, int k, vector<int> r, vector<int> c) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            int h = (i % 3) * 3 + (j % 3);
            if (h == 8) {
                SetFlag(i, j, 13);
            }
            else if (h == 7) SetFlag(i, j, 1);
            else {
                int x = r[h], y = c[h];
                if (x == i && y == j) {
                    SetFlag(i, j, 13);
                    continue;
                }
                if (abs(x - i) > abs(y - j)) {
                    if (abs(x - i) == 1) {
                        if (x < i) SetFlag(i, j, 4);
                        else SetFlag(i, j, 3);
                    }
                    else {
                        if (x < i) SetFlag(i, j, 12);
                        else SetFlag(i, j, 11);
                    }
                }
                else {
                    if (abs(x - i) == 1 && abs(y - j) == 1) {
                        if (x < i && y < j) SetFlag(i, j, 5);
                        if (x > i && y < j) SetFlag(i, j, 6);
                        if (x < i && y > j) SetFlag(i, j, 7);
                        if (x > i && y > j) SetFlag(i, j, 8);
                    }
                    else if (abs(y - j) == 1) {
                        if (y > j) SetFlag(i, j, 1);
                        else SetFlag(i, j, 2);
                    }
                    else {
                        if (y > j) SetFlag(i, j, 9);
                        else SetFlag(i, j, 10);
                    }
                }
            }
        }
    }
}
#include <iostream>
#include <vector>
#include "Bruno.h"
using namespace std;
int b[3][3] = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}}, a[4][4];
int dx[] = {0, 0, 0, 1, -1, -1, 1, -1, 1}, dy[] = {0, 1, -1, 0, 0, -1, -1, 1, 1};
vector<int> Bruno(int k, vector<int> aa) {
    vector<int> res(7);
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (aa[i * 3 + j] == 13 && aa[(j + 2) % 3 + i * 3] == 1) {
                for (int k = 0; k < 3; k++) {
                    for (int l = 0; l < 3; l++) {
                        a[k][l] = b[(k + 2 - i) % 3][(l + 2 - j) % 3];
                    }
                }
            }
        }
    }
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (a[i][j] >= 7) continue;
            if (aa[i * 3 + j] == 13) {
                if (j == 0) res[a[i][j]] = 1;
                else if (j == 2) res[a[i][j]] = 0;
                else if (i == 0) res[a[i][j]] = 3;
                else if (i == 2) res[a[i][j]] = 2;
                else res[a[i][j]] = 4;
                continue;
            }
            if (aa[i * 3 + j] > 8) res[a[i][j]] = aa[i * 3 + j] - 9;
            else {
                int x = i + dx[aa[i * 3 + j]], y = j + dy[aa[i * 3 + j]];
                if (x == 1 && y == 1) res[a[i][j]] = 4;
                else if (y < 1) res[a[i][j]] = 1;
                else if (y > 1) res[a[i][j]] = 0;
                else if (x < 1) res[a[i][j]] = 3;
                else res[a[i][j]] = 2;
            }
        }
    }
    return res;
}

#Verdict Execution timeMemoryGrader output
Fetching results...