#include <bits/stdc++.h>
#include "robot.h"
using namespace std;
template <typename T>
using v = vector<T>;
using ll = long long;
using pii = pair<int, int>;
#define rep(i, k, n) for (int i = k; i < n; i++)
#define set_instructions set_instruction
map<v<int>, int> mp;
bool not_used(v<int> S) {
bool can = !mp.count(S);
mp[S] = 1;
return can;
}
void program_pulibot() {
v<int> S = {0, 0, -2, -2, 0};
rep(i, -1, 4) {
S[1] = i;
S[4] = 2;
if (not_used(S)) set_instructions(S, 1, 'N');
S[1] = 2;
S[4] = i;
if (not_used(S)) set_instructions(S, 1, 'W');
mp[S] = 1;
}
S = {2, -2, 0, 0, -2};
rep(i, -1, 4) {
S[2] = i;
S[3] = 1;
if (not_used(S)) set_instructions(S, 1, 'T');
S[2] = 1;
S[3] = i;
if (not_used(S)) set_instructions(S, 1, 'T');
}
set<int> s;
rep(i, 1, 5) {
s.insert(i);
}
v<char> c = {'X', 'W', 'S', 'E', 'N'};
rep(i, 1, 5) {
s.erase(i);
S = {0, 0, 0, 0, 0};
rep(j, -2, 4) {
rep(k, -2, 4) {
rep(z, -2, 4) {
S[0] = 0;
S[i] = 0;
auto it = s.begin();
S[*it] = j;
it++;
S[*it] = k;
it++;
S[*it] = z;
if (not_used(S)) set_instructions(S, 2, c[i]);
S[0] = 2;
if (not_used(S)) set_instructions(S, 2, c[i]);
}
}
}
s.insert(i);
}
rep(i, 1, 5) {
s.erase(i);
S = {0, 0, 0, 0, 0};
rep(j, -2, 4) {
rep(k, -2, 4) {
rep(z, -2, 4) {
S[0] = 0;
S[i] = 2;
auto it = s.begin();
S[*it] = j;
it++;
S[*it] = k;
it++;
S[*it] = z;
if (not_used(S)) set_instructions(S, 3, c[i]);
S[0] = 2;
bool uno = false;
for (auto x : S) if (x == 1) uno = true;
int col = (uno ? 1 : 3);
if (not_used(S)) set_instructions(S, col, c[i]);
}
}
}
s.insert(i);
}
}
# | 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... |