#include "robot.h"
#include <bits/stdc++.h>
using namespace std;
const int nt = -4, ve = -3, sp = -2, bl = -1, pa = 0;
const int w = 1, s = 2, e = 3, n = 4;
const string c = "HWSEN";
int po = 0;
pair<char,int> now(int x){
return {c[x], x};
}
int nx(int x){
return x % 4 + 1;
}
int pr(int x){
return (x + 1) % 4 + 1;
}
pair<char,int> cek(vector<int> &v){
for(int i = 0; i < 5; i++) v[i]--;
bool st = (v[w] == ve && v[n] == ve);
bool en = (v[e] == ve && v[s] == ve);
if(v[po] == bl){
if(st){
if(v[s] == bl) return now(s);
if(v[e] == bl) return now(e);
return {'-', nt};
}
if(en){
return {'H', e};
}
for(int i = 1; i < 5; i++){
if(v[i] == pr(i)) return now(i);
}
return {'-', nt};
}
if(v[po] <= pa) return {'-', nt};
if(v[v[po]] == pr(v[po])){
int i = nx(v[po]);
while(v[i] != bl && v[i] != pr(i)) i = nx(i);
return now(i);
}
for(int i = 1; i < 5; i++){
if(v[i] == pr(i)) return {c[i], v[po]};
}
if(st || count(v.begin(), v.end(), pa) > 0){
if(en) return {'T', pa};
else return {c[v[po]], pa};
}
return {c[v[po]], bl};
}
void program_pulibot(){
vector<int> s(5);
for(s[0] = -2; s[0] < 5; s[0]++){
for(s[1] = -2; s[1] < 5; s[1]++){
for(s[2] = -2; s[2] < 5; s[2]++){
for(s[3] = -2; s[3] < 5; s[3]++){
for(s[4] = -2; s[4] < 5; s[4]++){
auto [act, val] = cek(s);
if(val != nt){
set_instruction(s, val + 1, act);
}
}
}
}
}
}
}
| # | 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... |