#include "robot.h"
#include <bits/stdc++.h>
using namespace std;
int li=-2;
int wa=-1;
int ns=0;
int ex=1;
int md=6;
int ret=1;
#define exp ex
#define p(a, b, c) set_instruction(a, b, c)
void si(int n, int e, int s, int w, int m){
vector <int> ac(5);
ac[0]=m;
ac[4]=n;
ac[3]=e;
ac[2]=s;
ac[1]=w;
if(m<0){
return;
}
if(n==li && w==li){
if(m==ret){
p(ac, ret, 'T');
return;
}
if(m>exp && m<md){
int adp=m;
int dp=m;
++dp;
--adp;
if(adp==exp){
adp=md-1;
}
if(dp==md){
dp=exp+1;
}
if(e==ret || s==ret){
p(ac, ret, 'T');
return;
}
if(e==m){
if(s==m || s==wa){
p(ac, adp, 'E');
return;
}
if(e==m || e==wa){
p(ac, m, 'S');
return;
}
return;
}
if(e==ns || e==dp){
p(ac, m, 'E');
return;
}
if(s==ns || s==dp){
p(ac, m, 'S');
return;
}
if(e==wa || e==md){
p(ac, adp, 'S');
return;
}
if(s==wa || s==md){
p(ac, adp, 'E');
return;
}
}
if(e==wa || e==md){
p(ac, exp+1, 'S');
return;
}
if(s==wa || s==md){
p(ac, exp+1, 'E');
return;
}
return;
}
if(s==li && e==li){
if(n>exp && n<md){
p(ac, ret, 'N');
return;
}
if(w>exp && w<md){
p(ac, ret, 'W');
return;
}
return;
}
if(m==ns){
if(n>exp && n<md){
p(ac, n, 'N');
return;
}
if(s>exp && s<md){
p(ac, s, 'S');
return;
}
if(e>exp && e<md){
p(ac, e, 'E');
return;
}
if(w>exp && w<md){
p(ac, w, 'W');
return;
}
return;
}
if(m==ret){
if(n>exp && n<md){
p(ac, ret, 'N');
return;
}
if(w>exp && w<md){
p(ac, ret, 'W');
return;
}
if(s>exp && s<md){
p(ac, ret, 'S');
return;
}
if(e>exp && e<md){
p(ac, ret, 'E');
return;
}
if(n==ret){
p(ac, ns, 'N');
return;
}
if(s==ret){
p(ac, ns, 'S');
return;
}
if(e==ret){
p(ac, ns, 'E');
return;
}
if(w==ret){
p(ac, ns, 'W');
return;
}
return;
}
if(n==ret || s==ret || e==ret || w==ret){
int mwr=m-1;
if(mwr<=exp){
mwr=md-1;
}
if(n==mwr){
p(ac, ret, 'N');
return;
}
if(s==mwr){
p(ac, ret, 'S');
return;
}
if(e==mwr){
p(ac, ret, 'E');
return;
}
if(w==mwr){
p(ac, ret, 'W');
return;
}
return;
}
if(e==ns){
p(ac, m, 'E');
return;
}
if(s==ns){
p(ac, m, 'S');
return;
}
if(w==ns){
p(ac, m, 'W');
return;
}
if(n==ns){
p(ac, m, 'N');
return;
}
int mnd=m;
++mnd;
if(mnd==md){
mnd=exp;
}
if(n==mnd || s==mnd || e==mnd || w==mnd){
if(e==mnd){
p(ac, m, 'E');
return;
}
if(s==mnd){
p(ac, m, 'S');
return;
}
if(w==mnd){
p(ac, m, 'W');
return;
}
if(n==mnd){
p(ac, m, 'N');
return;
}
return;
}
if(m>exp && m<md){
int amnd=m;
++amnd;
if(amnd==md){
amnd=exp+1;
}
if(e==amnd){
p(ac, m, 'E');
return;
}
if(s==amnd){
p(ac, m, 'S');
return;
}
if(w==amnd){
p(ac, m, 'W');
return;
}
if(n==amnd){
p(ac, m, 'N');
return;
}
int mru=m;
--mru;
if(mru<=exp){
mru=md-1;
}
if(n==m || s==m || e==m || w==m){
if(e==mru){
p(ac, e, 'E');
return;
}
if(s==mru){
p(ac, s, 'S');
return;
}
if(w==mru){
p(ac, w, 'W');
return;
}
if(n==mru){
p(ac, n, 'N');
return;
}
}
if(e==mru){
p(ac, md, 'E');
return;
}
if(s==mru){
p(ac, md, 'S');
return;
}
if(w==mru){
p(ac, md, 'W');
return;
}
if(n==mru){
p(ac, md, 'N');
return;
}
}
return;
}
void program_pulibot(){
for(int i=-2; i<=md; ++i){
for(int j=-2; j<=md; ++j){
for(int k=-2; k<=md; ++k){
for(int l=-2; l<=md; ++l){
for(int m=0; m<=md; ++m){
si(i, j, k, l, m);
}
}
}
}
}
return;
}
# | 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... |