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"
static const int MAX_COLOR = 19;
static const int MAX_STATE = 5153632;
bool program[MAX_STATE];
int e(const std::vector<int>& S)
{
int state = 0;
for (int s : S)
{
state = (MAX_COLOR + 3) * state + s + 2;
}
return state;
}
void a1(std::vector<int> S, int Z, char A)
{
int s = e(S);
if (!program[s])
{
program[s] = true;
set_instruction(S, Z, A);
}
else
{
int p = 1;
p = 2;
}
}
void a(int p, std::vector<int> W, std::vector<int> S, std::vector<int> E, std::vector<int> N, int Z, char A)
{
for (auto w : W)
for (auto s : S)
for (auto e : E)
for (auto n : N)
a1({ p, w, s, e, n }, Z, A);
}
void program_pulibot()
{
a(0, { 3 }, { -2 }, { -2 }, { -1, 0 }, 1, 'W');
a(0, { -1, 0 }, { -2 }, { -2 }, { 3 }, 1, 'N');
a(0, { -2 }, { -1, 0 }, { 0 }, { -2 }, 3, 'E');
a(0, { -2 }, { 0 }, { -1 }, { -2 }, 3, 'S');
a(0, { 3 }, { -2, -1, 0 }, { 0 }, { -2, -1, 0, 6 }, 3, 'E');
a(0, { -2, -1, 0 }, { -2, -1, 0 }, { 0 }, { 3 }, 3, 'E');
a(0, { 3 }, { 0 }, { -2, -1 }, { -2, -1, 0, 6 }, 3, 'S');
a(3, { 3 }, { 0 }, { 6 }, { -2, -1, 0, 6 }, 3, 'S');
a(0, { -2, -1, 0 }, { 0 }, { -2, -1, 6 }, { 3 }, 3, 'S');
a(3, { -2, -1, 0 }, { 0 }, { 6 }, { -2, 3 }, 3, 'S');
a(0, { 3 }, { -2, -1 }, { -2, -1 }, { -2, -1, 0, 6 }, 6, 'W');
a(0, { -2, -1, 0 }, { -2, -1 }, { -2, -1 }, { 3 }, 6, 'N');
a(0, { -2, -1, 0 }, { -2, -1 }, { 6 }, { 3 }, 6, 'E');
a(3, { -2, -1, 0 }, { 6 }, { -2, -1, 0 }, { 3 }, 6, 'S');
a(3, { -2, -1, 0 }, { -2, -1, 6 }, { 6 }, { 3 }, 10, 'E');
a(3, { 3 }, { 6 }, { -2, -1, 0 }, { -2, -1, 0, 6 }, 6, 'S');
a(3, { 3 }, { -2, -1, 6 }, { 6 }, { -2, -1, 0, 6 }, 10, 'E');
a(10, { -2, -1, 0 }, { 6 }, { -2, -1, 0 }, { 3 }, 6, 'S');
a(10, { 3 }, { 6 }, { -2, -1, 0 }, { -2, -1, 0, 6 }, 6, 'S');
a(10, { -2, -1, 0, 3, 6 }, { -2, -1, 0, 3, 6 }, { -2, -1, 0, 3, 6 }, { -2, -1, 0, 3, 6 }, 6, 'H');
a(3, { -2 }, { 6 }, { -2, -1, 0 }, { -2 }, 6, 'S');
a(6, { -2 }, { 6 }, { -2, -1, 0 }, { -2 }, 6, 'S');
a(3, { -2 }, { -2, -1, 6 }, { 6 }, { -2 }, 10, 'E');
a(6, { 0 }, { 6 }, { -2, -1, 0 }, { 3, 6 }, 6, 'N');
a(6, { 0 }, { -2, -1, 0 }, { -2, -1, 0 }, { 6 }, 7, 'W');
a(0, { -2, -1, 0 }, { -2, -1, 0 }, { 7 }, { 3 }, 9, 'E');
a(0, { -2, -1, 0 }, { -2, -1, 0 }, { 7 }, { -1 }, 8, 'E');
a(0, { -2, -1, 0 }, { -2, -1, 0 }, { 7 }, { 0 }, 7, 'N');
a(0, { -2, -1, 0 }, { 7 }, { 3, 6 }, { 0 }, 7, 'N');
a(0, { -2, -1, 0 }, { 7 }, { 3, 6 }, { -1 }, 8, 'S');
a(0, { -2, -1, 0 }, { 7 }, { 3, 6 }, { 3 }, 9, 'S');
a(7, { -2, -1, 0 }, { 7, -2, -1, 0 }, { 3, 6, 7 }, { 9 }, 9, 'N');
a(7, { -2, -1, 0 }, { 7, -2, -1, 0 }, { 3, 6, 7 }, { 8 }, 8, 'N');
a(8, { -2, -1, 0 }, { 8 }, { 3, 6 }, { -1, 0 }, 0, 'S');
a(9, { -2, -1, 0 }, { 9 }, { 3, 6 }, { 3, 0 }, 0, 'S');
a(8, { -2, -1, 0 }, { 7 }, { 3, 6 }, { -1, 0 }, 8, 'S');
a(9, { -2, -1, 0 }, { 7 }, { 3, 6 }, { 3, 0 }, 9, 'S');
a(8, { -2, -1, 0 }, { -2, -1, 0 }, { 7 }, { -1, 0 }, 8, 'E');
a(9, { -2, -1, 0 }, { -2, -1, 0 }, { 7 }, { 3, 0 }, 9, 'E');
a(7, { 9 }, { -2, -1, 0, 6 }, { -2, -1, 0 }, { 6 }, 9, 'W');
a(7, { 8 }, { -2, -1, 0, 6 }, { -2, -1, 0 }, { 6 }, 8, 'W');
a(8, { -2, -1, 0 }, { -2, -1, 0 }, { 8 }, { -1, 0 }, 0, 'E');
a(9, { -2, -1, 0 }, { -2, -1, 0 }, { 9 }, { 3, 0 }, 0, 'E');
a(8, { -2, -1, 0 }, { -2, -1, 0 }, { -2, -1, 0 }, { 6 }, 0, 'N');
a(9, { -2, -1, 0 }, { -2, -1, 0 }, { -2, -1, 0 }, { 6 }, 6, 'N');
a(6, { -2, -1, 0 }, { -2, -1, 0 }, { -2, -1, 0 }, { 6 }, 0, 'N');
a(6, { 6, 10 }, { -2, -1, 0 }, { -2, -1, 0 }, { -2, -1, 0, 6 }, 0, 'W');
//a(6, { -2, -1, 0, 3 }, { 6 }, { -2, -1, 0 }, { -2, -1, 0, 3, 6 }, 6, 'S');
a(6, { -2, -1, 0 }, { -2, -1, 0 }, { -2, -1, 0 }, { 3 }, 6, 'N');
a(6, { 3 }, { -2, -1, 0, 6 }, { -2, -1, 0 }, { -2, -1, 0, 6 }, 6, 'W');
a(3, { 3 }, { 1 }, { 6 }, { -2, -1, 0, 6 }, 1, 'E');
a(3, { -2, -1, 0 }, { 1 }, { 6 }, { -2, 3 }, 1, 'E');
a(6, { 1 }, { -2, -1, 0, 1 }, { -2, -1, 0 }, { -2, -1, 0, 6 }, 0, 'W');
a(3, { 3 }, { 1 }, { -2, -1, 0 }, { -2, -1, 0, 6 }, 1, 'W');
a(3, { 3 }, { -2, -1, 0 }, { 1 }, { -2, -1, 0, 6 }, 1, 'W');
a(3, { -2, -1, 0 }, { 1 }, { -2, -1, 0 }, { 3 }, 1, 'N');
a(3, { -2, -1, 0 }, { -2, -1, 0 }, { 1 }, { 3 }, 1, 'N');
a(1, { -2, -1, 0 }, { 1 }, { -2, -1, 0 }, { 3 }, 1, 'N');
a(1, { 3 }, { 1 }, { -2, -1, 0 }, { -2, -1, 0, 6 }, 1, 'W');
a(6, { -2 }, { -1, 0 }, { -1, 0 }, { -2 }, 2, 'H');
a(3, { -2 }, { -1, 0, 1 }, { -1, 0, 1 }, { -2 }, 1, 'T');
// find
a(0, { -2, -1, 2, 0, 4 }, { -2, -1, 2, 0, 4 }, { 0 }, { -2, -1, 2, 0, 4 }, 2, 'E');
a(0, { -2, -1, 2, 0, 4 }, { 0 }, { -2, -1, 2, 4 }, { -2, -1, 2, 0, 4 }, 2, 'S');
a(0, { -1, 2, 0, 4 }, { -2, -1, 2, 4 }, { -1, 2, 4 }, { 0 }, 2, 'N');
a(0, { 0 }, { -1, 4, 2 }, { -2, -1, 4, 2 }, { -1, 4, 2 }, 2, 'W');
a(2, { -2, -1, 2, 0, 4 }, { -2, -1, 2, 0, 4 }, { 0 }, { -2, -1, 2, 0, 4 }, 2, 'E');
a(2, { -2, -1, 2, 0, 4 }, { 0 }, { -2, -1, 2, 4 }, { -2, -1, 2, 0, 4 }, 2, 'S');
a(2, { -1, 2, 0, 4 }, { -2, -1, 2, 4 }, { -1, 2, 4 }, { 0 }, 2, 'N');
a(2, { 0 }, { -1, 4, 2 }, { -2, -1, 4, 2 }, { -1, 4, 2 }, 2, 'W');
// back
a(0, { -1, 2, 0 }, { -2 }, { -2 }, { -1, 2, 0 }, 1, 'H');
//deadlock
a(0, { -2, -1, 2, 4 }, { -2, -1, 2, 4 }, { -2, -1, 2, 4 }, { -2, -1, 2, 4 }, 4, 'H');
a(0, { -1, 2, 4 }, { -1, 2, 4 }, { -2 }, { 0 }, 4, 'H');
a(0, { -2 }, { -2, -1, 2, 4 }, { -1, 2, 4 }, { 0 }, 4, 'H');
a(0, { 0 }, { -2 }, { -1, 2, 4 }, { -1, 2, 4 }, 4, 'H');
a(0, { 0 }, { -1, 2, 4 }, { -1, 2, 4 }, { -2 }, 4, 'H');
a(2, { -1, 2, 4 }, { -1, 2, 4 }, { -2 }, { 0 }, 5, 'H');
a(2, { -2 }, { -2, -1, 2, 4 }, { -1, 2, 4 }, { 0 }, 5, 'H');
a(2, { 0 }, { -2 }, { -1, 2, 4 }, { -1, 2, 4 }, 5, 'H');
a(2, { 0 }, { -1, 2, 4 }, { -1, 2, 4 }, { -2 }, 5, 'H');
a(2, { -2, -1, 2, 4 }, { -2, -1, 2, 4 }, { -2, -1, 2, 4 }, { -2, -1, 2, 4 }, 5, 'H');
a(5, { 4 }, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, 5, 'W');
a(5, { -2, -1, 0, 2 }, { 4 }, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, 5, 'S');
a(5, { -2, -1, 0, 2 }, { -2, -1, 0, 2 }, { 4 }, { -2, -1, 0, 2, 4 }, 5, 'E');
a(5, { -2, -1, 0, 2 }, { -2, -1, 0, 2 }, { -2, -1, 0, 2 }, { 4 }, 5, 'N');
a(5, { -2, -1, 0, 2 }, { -2, -1, 0, 2 }, { -2, -1, 0, 2 }, { -2, -1, 0, 2 }, 4, 'H');
a(4, { 5 }, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, 0, 'W');
a(4, { -2, -1, 0, 4 }, { 5 }, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, 0, 'S');
a(4, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, { 5 }, { -2, -1, 0, 4 }, 0, 'E');
a(4, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, { 5 }, 0, 'N');
a(4, { 2 }, { -2, -1, 0 }, { -2, -1, 0 }, { -2, -1, 0 }, 4, 'W');
a(4, { -2, -1, 0 }, { 2 }, { -2, -1, 0 }, { -2, -1, 0 }, 4, 'S');
a(4, { -2, -1, 0 }, { -2, -1, 0 }, { 2 }, { -2, -1, 0 }, 4, 'E');
a(4, { -2, -1, 0 }, { -2, -1, 0 }, { -2, -1, 0 }, { 2 }, 4, 'N');
// back continue
a(2, { 1 }, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, 1, 'H');
a(2, { -2, -1, 0, 2, 4 }, { 1 }, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, 1, 'H');
a(2, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, { 1 }, { -2, -1, 0, 2, 4 }, 1, 'H');
a(2, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, { -2, -1, 0, 2, 4 }, { 1 }, 1, 'H');
a(1, { 4 }, { -2, -1, 0, 1, 2, 4 }, { -2, -1, 0, 1, 2, 4 }, { -2, -1, 0, 1, 2, 4 }, 1, 'W');
a(1, { -2, -1, 0, 1, 2 }, { 4 }, { -2, -1, 0, 1, 2, 4 }, { -2, -1, 0, 1, 2, 4 }, 1, 'S');
a(1, { -2, -1, 0, 1, 2 }, { -2, -1, 0, 1, 2 }, { 4 }, { -2, -1, 0, 1, 2, 4 }, 1, 'E');
a(1, { -2, -1, 0, 1, 2 }, { -2, -1, 0, 1, 2 }, { -2, -1, 0, 1, 2 }, { 4 }, 1, 'N');
a(4, { 1 }, { -2, -1, 0, 1, 4 }, { -2, -1, 0, 1, 4 }, { -2, -1, 0, 1, 4 }, 0, 'W');
a(4, { -2, -1, 0, 4 }, { 1 }, { -2, -1, 0, 1, 4 }, { -2, -1, 0, 1, 4 }, 0, 'S');
a(4, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, { 1 }, { -2, -1, 0, 1, 4 }, 0, 'E');
a(4, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, { -2, -1, 0, 4 }, { 1 }, 0, 'N');
a(1, { 2 }, { -2, -1, 0, 1 }, { -2, -1, 0, 1 }, { -2, -1, 0, 1 }, 1, 'W');
a(1, { -2, -1, 0, 1 }, { 2 }, { -2, -1, 0, 1 }, { -2, -1, 0, 1 }, 1, 'S');
a(1, { -2, -1, 0, 1 }, { -2, -1, 0, 1 }, { 2 }, { -2, -1, 0, 1 }, 1, 'E');
a(1, { -2, -1, 0, 1 }, { -2, -1, 0, 1 }, { -2, -1, 0, 1 }, { 2 }, 1, 'N');
// fin
a(1, { -2 }, { -1, 1, 0 }, { -1, 1, 0 }, { -2 }, 1, 'T');
}
Compilation message (stderr)
robot.cpp: In function 'void a1(std::vector<int>, int, char)':
robot.cpp:27:13: warning: variable 'p' set but not used [-Wunused-but-set-variable]
27 | int p = 1;
| ^
# | 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... |