#include "robot.h"
#include <array>
#include <set>
std::set<std::array<int, 5>> asked;
void my_set_instruction(std::array<int, 5> ask, int Z, char A) {
if (asked.count(ask)) return;
set_instruction({ask[0], ask[1], ask[2], ask[3], ask[4]}, Z, A);
asked.insert(ask);
}
void program_pulibot()
{
// dfs 0 not jet visited, 2 visited, 3 way back
std::vector<int> r1 = {-2, -1, 0, 2, 3};
// North outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({0, r1[i], r1[j], r1[k], 0}, 2, 'N');
}
}
}
// East outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({0, r1[i], r1[j], 0, r1[k]}, 2, 'E');
}
}
}
// South outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({0, r1[i], 0, r1[j], r1[k]}, 2, 'S');
}
}
}
// West outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({0, 0, r1[i], r1[j], r1[k]}, 2, 'W');
}
}
}
// Terminate
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
my_set_instruction({2, r1[i], -2, -2, r1[j]}, 2, 'T');
}
}
// Stay outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
for (int l = 0; l < r1.size(); l++) {
my_set_instruction({0, r1[i], r1[j], r1[k], r1[l]}, 2, 'H');
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
// North outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({2, r1[i], r1[j], r1[k], 0}, 2, 'N');
}
}
}
// East outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({2, r1[i], r1[j], 0, r1[k]}, 2, 'E');
}
}
}
// South outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({2, r1[i], 0, r1[j], r1[k]}, 2, 'S');
}
}
}
// West outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({2, 0, r1[i], r1[j], r1[k]}, 2, 'W');
}
}
}
// North outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({2, r1[i], r1[j], r1[k], 2}, 3, 'N');
}
}
}
// East outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({2, r1[i], r1[j], 2, r1[k]}, 3, 'E');
}
}
}
// South outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({2, r1[i], 2, r1[j], r1[k]}, 3, 'S');
}
}
}
// West outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
my_set_instruction({2, 2, r1[i], r1[j], r1[k]}, 3, 'W');
}
}
}
// Stay outbound
for (int i = 0; i < r1.size(); i++) {
for (int j = 0; j < r1.size(); j++) {
for (int k = 0; k < r1.size(); k++) {
for (int l = 0; l < r1.size(); l++) {
my_set_instruction({2, r1[i], r1[j], r1[k], r1[l]}, 3, 'T');
}
}
}
}
}
# | 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... |