#include "robot.h"
#include <bits/stdc++.h>
using namespace std;
#define set set_instruction
char get(int i,int j,int k,int l,int x)
{
if (i==x) return 'W';
if (j==x) return 'S';
if (k==x) return 'E';
if (l==x) return 'N';
return 'H';
}
void program_pulibot()
{
for (int cur=0;cur<=5;cur++)
for (int i=-2;i<=5;i++)
for (int j=-2;j<=5;j++)
for (int k=-2;k<=5;k++)
for (int l=-2;l<=5;l++)
{
if (cur==0)
set({0,i,j,k,l},1,'H');
else if(cur==1)
{
// post dfs
if (j==-2 && k==-2)
set({cur,i,j,k,l},3,'H');
else if (get(i,j,k,l,3)!='H')
set({cur,i,j,k,l},3,'H');
// dfs
else
{
char c=get(i,j,k,l,0);
if (c=='H')
{
c=get(i,j,k,l,1);
set({cur,i,j,k,l},2,c);
}
else
set({cur,i,j,k,l},1,c);
}
}
else if(cur==2)
set({cur,i,j,k,l},4,'H');
else if(cur==3)
{
char c=get(i,j,k,l,2);
if (c!='H')
set({cur,i,j,k,l},3,c);
else
{
c=get(i,j,k,l,1);
if (c!='H')
set({cur,i,j,k,l},3,c);
else
set({cur,i,j,k,l},5,'H');
}
}
else if(cur==4)
{
char c=get(i,j,k,l,2);
if (c!='H')
set({cur,i,j,k,l},4,c);
else
{
char c=get(i,j,k,l,4);
if (c!='H')
set({cur,i,j,k,l},0,c);
else
set({cur,i,j,k,l},0,get(i,j,k,l,3));
}
}
else
{
char c=get(i,j,k,l,3);
if (c!='H')
set({cur,i,j,k,l},5,c);
else
{
c=get(i,j,k,l,5);
if (c=='H') c='T';
set({cur,i,j,k,l},1,c);
}
}
}
}
# | 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... |