# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1067599 | Ahmed57 | 로봇 대회 (IOI23_robot) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "bits/stdc++.h"
#include "robot.h"
using namespace std;
//2 WEST
//3 SOUTH
//4 EAST
//5 NORTH
enum Id {
Bound = -2,
Block,
Empty,
Path,
West,
South,
East,
North
};
char arr[] = {'W','S','E','N'};
void program_pulibot(){
for(int c = 0;c<=5;c++){
for(int w = -2;w<=5;w++){
for(int s = -2;s<=5;s++){
for(int e = -2;e<=5;e++){
for(int n = -2;n<=5;n++){
vector<int> lol = {w,s,e,n};
if(c==0){
if(n==Bound&&w==Bound){
if(s==Bound){
set_interaction({c,w,s,e,n},East,'E');
}else{
set_interaction({c,w,s,e,n},South,'S');
}
}else if(s==Bound&&e==Bound){
set_interaction({c,w,s,e,n},East,'E');
}else{
for(int i = 0;i<4;i++){
if(lol[i]-2==(i+2)%4){
set_interaction({c,w,s,e,n},West+i,arr[i]);
break;
}
}
}
}else{
if(lol[c-2]-2==(c+2)%4){
for(int e = 1;e<=4;e++){
int i = (c-2+e)%4;
if(lol[i]-2==(i+2)%4){
set_interaction({c,w,s,e,n},West+i,arr[i]);
break;
}
}
}else{
bool path = 0;
bool done = 0;
for(int e = 1;e<=4;e++){
int i = (c-2+e)%4;
if(lol[i]==1){
path = 1;
}
if(lol[i]-2==(i+2)%4){
set_interaction({c,w,s,e,n},c,arr[i]);
done = 1;
}
}
if(done)continue;
set_anteraction({c,w,s,e,n},(path||(w==Bound&&n==Bound))?Path:Empty,(e==Bound||s==Bound)?'T':arr[(c+1)%4]);
}
}
}
}
}
}
}
}