# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1058383 | shmax | Robot Contest (IOI23_robot) | C++17 | 99 ms | 6760 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 "robot.h"
#include <bits/stdc++.h>
using namespace std;
template<typename T>
using vec = vector<T>;
void program_pulibot() {
// set_instruction({0, -2, 0, 0, -2}, 1, 'S');
// set_instruction({0, -2, 0, 0, 1}, 1, 'S');
// set_instruction({0, -2, -2, 0, 1}, 1, 'E');
// set_instruction({0, 1, -2, 0, 0}, 1, 'E');
// set_instruction({0, 1, -2, -2, 0}, 1, 'H');
// set_instruction({1, 1, -2, -2, 0}, 1, 'T');
auto process = [&](char c) {
if (c == 'L') return 'W';
if (c == 'R') return 'E';
if (c == 'D') return 'S';
if (c == 'U') return 'N';
return c;
};
auto prev = [&](int x) {
if (x == 2) return 'H';
if (x == 3) return 'U';
if (x == 4) return 'L';
if (x == 5) return 'D';
if (x == 6) return 'R';
};
auto to_clear = [&](int x) {
return 1 < x and x < 7;
};
vec<int> all = {-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for (auto cur: all) {
if (cur == -2 or cur == -1) continue;
for (auto l: all) {
for (auto d: all) {
for (auto r: all) {
for (auto u: all) {
int Z = -1;
char c = '*';
if (cur == 0) {
if (l == -2 and u == -2) {
Z = 2;
} else if (l > 0) {
Z = 4;
} else if (r > 0) {
Z = 6;
} else if (u > 0) {
Z = 3;
} else if (d > 0) {
Z = 5;
}
c = 'H';
}
if (cur == 9 or cur == 1) {
Z = 1;
{
if (l == 9) {
c = 'L';
} else if (r == 9) {
c = 'R';
} else if (u == 9) {
c = 'U';
} else if (d == 9) {
c = 'D';
}
if (l == -2 and u == -2) {
c = 'T';
}
if (to_clear(l) and c != 'L') {
c = 'L';
} else if (to_clear(r) and c != 'R') {
c = 'R';
} else if (to_clear(u) and c != 'U') {
c = 'U';
} else if (to_clear(d) and c != 'D') {
c = 'D';
}
}
}
if (cur > 1 and cur < 7) {
if (l == 7 or r == 7 or d == 7 or u == 7) {
Z = 7;
c = 'H';
} else {
if (l == 1 or r == 1 or d == 1 or u == 1) {
Z = 7;
c = 'H';
} else {
if (l == 8 or r == 8 or d == 8 or u == 8) {
Z = 8;
c = prev(cur);
} else {
if (r == -2 and d == -2) {
c = prev(cur);
Z = 8;
} else {
Z = cur;
if (l == 0) {
c = 'L';
} else if (r == 0) {
c = 'R';
} else if (u == 0) {
c = 'U';
} else if (d == 0) {
c = 'D';
} else {
c = prev(cur);
}
}
}
}
}
}
if (cur == 8) {
Z = 9;
if (r == -2 and d == -2) {
Z = 9;
c = 'H';
}
if (l == 8) {
c = 'L';
} else if (r == 8) {
c = 'R';
} else if (u == 8) {
c = 'U';
} else if (d == 8) {
c = 'D';
}
}
if (cur == 7) {
Z = 7;
if (to_clear(l)) {
c = 'L';
} else if (to_clear(r)) {
c = 'R';
} else if (to_clear(u)) {
c = 'U';
} else if (to_clear(d)) {
c = 'D';
} else {
Z = 0;
if (l == 7 or l == 1) {
c = 'L';
} else if (r == 7 or r == 1) {
c = 'R';
} else if (u == 7 or u == 1) {
c = 'U';
} else if (d == 7 or d == 1) {
c = 'D';
}
}
}
if (Z == -1 or c == '*') continue;
set_instruction({cur, l, d, r, u}, Z, process(c));
}
}
}
}
}
}
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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |