| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1366324 | alexdd | Navigation 2 (JOI21_navigation2) | C++20 | 0 ms | 0 KiB |
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
namespace
{
const int MAXN = 105;
int who[MAXN][MAXN];
}
void Anna(int N, int K, std::vector<int> R, std::vector<int> C)
{
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
who[i][j] = (i%3) * 3 + (j%3);
who[i][j] -= 2;
}
}
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
int val = who[i][j];
if(val < 0)
SetFlag(i, j, 1);
else if(R[val] < i - 1)
SetFlag(i, j, 2 + 3);
else if(R[val] > i + 1)
SetFlag(i, j, 2 + 2);
else if(C[val] < j - 1)
SetFlag(i, j, 2 + 1);
else if(C[val] > j + 1)
SetFlag(i, j, 2 + 0);
else
{
assert(i - 1 <= R[val] && R[val] <= i + 1 && j - 1 <= C[val] && C[val] <= j + 1);
int mini_poz = (R[val] - (i - 1)) * 3 + (C[val] - (j - 1));
SetFlag(i, j, 6 + mini_poz);
}
}
}
}
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
namespace
{
const int MAXN = 105;
int who[MAXN][MAXN];
}
void Anna(int N, int K, std::vector<int> R, std::vector<int> C)
{
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
who[i][j] = (i%3) * 3 + (j%3);
who[i][j] -= 2;
}
}
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
int val = who[i][j];
if(val < 0)
SetFlag(i, j, 1);
else if(R[val] < i - 1)
SetFlag(i, j, 2 + 3);
else if(R[val] > i + 1)
SetFlag(i, j, 2 + 2);
else if(C[val] < j - 1)
SetFlag(i, j, 2 + 1);
else if(C[val] > j + 1)
SetFlag(i, j, 2 + 0);
else
{
assert(i - 1 <= R[val] && R[val] <= i + 1 && j - 1 <= C[val] && C[val] <= j + 1);
int mini_poz = (R[val] - (i - 1)) * 3 + (C[val] - (j - 1));
SetFlag(i, j, 6 + mini_poz);
}
}
}
}
