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;
enum directions {
e,
s,
n,
w,
};
void program_pulibot() {
for(int current=0;current<=5;current++) {
for(int west=-2;west<=5;west++) {
for(int south=-2;south<=5;south++) {
for(int north=-2;north<=5;north++) {
for(int east=-2;east<=5;east++) {
vector<int> cur = {current,west,south,east,north};
directions parent = w;
if(west==2)parent=w;
else if(east==5)parent=e;
else if(north==3)parent=n;
else if(south==4)parent=s;
if(current==1) {
if(north==-2 and west==-2) {
set_instruction(cur,1,'T');
continue;
}
char par;
if(parent==w)par='W';
else if(parent==e)par='E';
else if(parent==s)par='S';
else par='N';
set_instruction(cur,1,par);
continue;
}
if(south==-2 and east==-2) {
// we have found a path
set_instruction(cur,1,'H');
continue;
}
if(current==0) {
// Go east, no processing needed
if(parent==e or east!=0){
set_instruction(cur,2,'H');
} else {
set_instruction(cur,2,'E');
}
} else if(current==2) {
// Process that we came from east and try to go south
if(parent!=e and east==1) {
set_instruction(cur,1,'H');
} else if(parent==s or south!=0) {
set_instruction(cur,3,'H');
} else {
set_instruction(cur,3,'S');
}
} else if(current==3) {
// Process that we came from south and try to go north
if(parent!=s and south==1) {
set_instruction(cur,1,'H');
} else if(parent==n or north!=0) {
set_instruction(cur,4,'H');
} else {
set_instruction(cur,4,'N');
}
} else if(current==4) {
// Process that we came from north and try to go west
if(parent!=n and north==1) {
set_instruction(cur,1,'H');
} else if(parent==w or west!=0) {
set_instruction(cur,5,'H');
} else {
set_instruction(cur,5,'W');
}
} else if(current==5) {
// Process that we looked west, if nothing return to parent
if(parent!=w and west==1) {
set_instruction(cur,1,'H');
} else {
char par;
if(parent==w)par='W';
else if(parent==e)par='E';
else if(parent==s)par='S';
else par='N';
set_instruction(cur,0,par);
}
}
}
}
}
}
}
}
# | 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... |