# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
154299 | two_sides | Robots (APIO13_robots) | C++17 | 592 ms | 101172 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define eb emplace_back
#define INF (0x3f3f3f3f)
using namespace std;
const int dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0};
inline void fuk() { puts("-1"); exit(0); }
int D[9][9][505][505];
int PY[505][505][4], PX[505][505][4];
char A[505][505];
int N, H, W, Ans = INF;
vector<int> EV[505*505];
void spread(int D[][505]) {
int mn = INF;
for(int i = 1; i <= H; i++) for(int j = 1; j <= W; j++)
if(D[i][j] < mn) mn = D[i][j];
if(INF <= mn) fuk();
for(int i = 1; i <= H; i++) for(int j = 1; j <= W; j++)
if(D[i][j] <= mn + H*W)
EV[D[i][j]-mn].eb(i<<10|j);
for(int l = 0; l <= H*W; l++) {
auto &V = EV[l];
for(int key : V) {
int i = key>>10, j = key&((1<<10)-1);
for(int dr = 0, ni, nj; dr < 4; dr++) {
ni = PY[i][j][dr]; nj = PX[i][j][dr];
if(ni < 1 || nj < 1 || H < ni || W < nj) continue;
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |