#include "robot.h"
#include<bits/stdc++.h>
#define pb push_back
#define all(v) v.begin(),v.end()
#define forf(i,s,e) for(int i = s; i<=e; i++)
#define forb(i,s,e) for(int i = s; i>=e; i--)
#define idx(i,v) lower_bound(all(v),i)-v.begin()
#define comp(v) v.erase(unique(all(v)),v.end())
#define sz(v) (int)v.size()
#define fs first
#define se second
#define SP << " " <<
#define LN << "\n"
#define IO cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false);
using namespace std;
typedef long long ll;
ll inf = 1e18;
set<array<int,5> > S;
string dir = "WSEN";
void program_pulibot()
{
forf(now,0,6) forf(w,-2,6) forf(s,-2,6) forf(e,-2,6) forf(n,-2,6){
vector<int> ch;
if(now == 0){
if (w == 1) ch.pb(0); if (s == 1) ch.pb(1); if (e == 1) ch.pb(2); if (n == 1) ch.pb(3);
if(sz(ch)){
set_instruction({now,w,s,e,n},ch[0]+3,dir[ch[0]]);
}
else{
if (w == 2) ch.pb(0); if (s == 2) ch.pb(1); if (e == 2) ch.pb(2); if (n == 2) ch.pb(3);
if(sz(ch)) set_instruction({now,w,s,e,n},0,dir[ch[0]]);
else set_instruction({now,w,s,e,n},2,'H');
}
}
if(now == 2){
if(w==1 || s== 1 || e== 1 || n==1){
if (w == 0) ch.pb(0); if (s == 0) ch.pb(1); if (e == 0) ch.pb(2); if (n == 0) ch.pb(3);
if(sz(ch)) set_instruction({now,w,s,e,n},1,dir[ch[0]]);
else set_instruction({now,w,s,e,n},1,'H');
continue;
}
if(s == -2 && e == -2){
if (w == 2) ch.pb(0); if (s == 2) ch.pb(1); if (e == 2) ch.pb(2); if (n == 2) ch.pb(3);
if(sz(ch)) {set_instruction({now,w,s,e,n},1,dir[ch[0]]); continue;}
}
if (w == 5) ch.pb(0); if (s == 6) ch.pb(1); if (e == 3) ch.pb(2); if (n == 4) ch.pb(3);
if(sz(ch)) set_instruction({now,w,s,e,n},2,dir[ch[0]]);
else set_instruction({now,w,s,e,n},1,'H');
}
if(now == 1){
if(w==1 || s== 1 || e== 1 || n==1){
//clear
if (w == 5) ch.pb(0); if (s == 6) ch.pb(1); if (e == 3) ch.pb(2); if (n == 4) ch.pb(3);
if(sz(ch)) set_instruction({now,w,s,e,n},1,dir[ch[0]]);
else{
if (w == 2) ch.pb(0); if (s == 2) ch.pb(1); if (e == 2) ch.pb(2); if (n == 2) ch.pb(3);
if(sz(ch)) set_instruction({now,w,s,e,n},1,dir[ch[0]]);
else set_instruction({now,w,s,e,n},1,'T');
}
continue;
}
//extend
if (w == 0) ch.pb(0); if (s == 0) ch.pb(1); if (e == 0) ch.pb(2); if (n == 0) ch.pb(3);
if(sz(ch)){
set_instruction({now,w,s,e,n},1,dir[ch[0]]);
}
else set_instruction({now,w,s,e,n},0,'H');
}
if(now >= 3) {
if(w==2 || s== 2 || e== 2 || n==2) set_instruction({now,w,s,e,n},2,'H');
else{
//clear
if (w == 5) ch.pb(0); if (s == 6) ch.pb(1); if (e == 3) ch.pb(2); if (n == 4) ch.pb(3);
if(sz(ch)) set_instruction({now,w,s,e,n},now,dir[ch[0]]);
else set_instruction({now,w,s,e,n},0,dir[now-3]);
}
}
}
}
# | 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... |