#include "robot.h"
#include<bits/stdc++.h>
using namespace std;
char letra(int x){
if(x == 1)
return 'W';
if(x == 2)
return 'S';
if(x == 3)
return 'E';
return 'N';
}
void limpar(vector <int> &v){
for(int i = 2;i < 4;i++){
if(v[i] == 3){
set_instruction(v, v[0], letra(i));
return;
}
}
if(v[0] == 4){
for(int i = 1;i < 5;i += 3){
if(v[i] == 1 or v[i] == 4){
set_instruction(v, 0, letra(i));
return;
}
}
}
else{
for(int i = 1;i < 5;i += 3){
if(v[i] == 2){
set_instruction(v, 1, letra(i));
return;
}
}
set_instruction(v, 1, 'T');
}
}
void backtrack(vector <int> &v){
if(v.size() == 5){
/*for(auto x : v){
cout << x << ' ';
}
cout << '\n';*/
if(v[0] == 0){
set_instruction(v, 2, 'H');
return;
}
if(v[2] == -2 and v[3] == -2){
for(int i = 1;i < 5;i += 3){
if(v[i] == 2){
set_instruction(v, 1, letra(i));
return;
}
}
}
if(v[0] == 2){
for(int i = 2;i < 4;i++){
if(v[i] == 1){
set_instruction(v, 1, 'H');
return;
}
}
}
if(v[0] == 1 or v[0] == 4){
limpar(v);
return;
}
if(v[0] == 2){
for(int i = 2;i < 4;i++){
if(v[i] == 0){
set_instruction(v, 2, letra(i));
return;
}
}
for(int i = 1;i < 5;i += 3){
if(v[i] == 2){
set_instruction(v, 3, letra(i));
return;
}
}
}
if(v[0] == 3){
set_instruction(v, 4, 'H');
return;
}
return;
}
for(int i = -2;i < 5;i++){
v.push_back(i);
backtrack(v);
v.pop_back();
}
return;
}
void program_pulibot(){
/*
set_instruction({0, -2, -1, 0, -2}, 1, 'E');
set_instruction({0, 1, -1, 0, -2}, 1, 'E');
set_instruction({0, 1, 0, -2, -2}, 1, 'S');
set_instruction({0, -1, -2, -2, 1}, 1, 'T');
*/
vector <int> v = {};
backtrack(v);
}
# | 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... |