제출 #1316551

#제출 시각아이디문제언어결과실행 시간메모리
1316551ozner77로봇 대회 (IOI23_robot)C++20
6 / 100
52 ms6236 KiB
#include "robot.h"
#include <bits/stdc++.h>
using namespace std;
#define ll int
// cur west south eas north
void solve(ll ac,ll oe,ll su,ll es,ll no){
    vector<ll> L;
    L.push_back(ac);
    L.push_back(oe);
    L.push_back(su);
    L.push_back(es);
    L.push_back(no);
    map<ll,char> M;
    M[1]='W';
    M[2]='S';
    M[3]='E';
    M[4]='N';
    if(es==-2 && su==-2){
        for(int i=1;i<L.size();i++){
            if(L[i]==2 || L[i]==3){
                set_instruction({ac,oe,su,es,no},1,M[i]);
                return;
            }
        }
    }
    if(ac==5){
        for(int i=1;i<5;i++){
            if(L[i]==5){
                set_instruction({ac,oe,su,es,no},0,M[i]);
                return;
            }
        }
        for(int i=1;i<5;i++){
            if(L[i]==1){
                set_instruction({ac,oe,su,es,no},0,M[i]);
                return;
            }
        }
    }
    if(ac==4){
        for(int i=1;i<5;i++){
            if(L[i]==4){
                set_instruction({ac,oe,su,es,no},5,M[i]);
                return;
            }
        }
        for(int j=1;j<5;j++){
            if(L[j]==5){
                set_instruction({ac,oe,su,es,no},0,M[j]);
                return;
            }
        }
    }
    for(int i=1;i<5;i++){
        if(L[i]==1){
            for(int j=1;j<5;j++){
                if(L[j]==4){
                    set_instruction({ac,oe,su,es,no},1,M[j]);
                    return;
                }
            }
            for(int j=1;j<5;j++){
                if(L[j]==2 || L[j]==3){
                    set_instruction({ac,oe,su,es,no},1,M[j]);
                    return;
                }
            }
            set_instruction({ac,oe,su,es,no},1,'T');
            return;
        }
    }
    if(es==0 && su==0){
        set_instruction({ac,oe,su,es,no},3,'E');
        return;
    }
    if(es==0){
        set_instruction({ac,oe,su,es,no},2,'E');
        return;
    }
    if(su==0){
        set_instruction({ac,oe,su,es,no},2,'S');
        return;
    }
    for(int i=1;i<5;i++){
        if(L[i]==3){
            set_instruction({ac,oe,su,es,no},4,M[i]);
            return;
        }
        if(L[i]==2){
            set_instruction({ac,oe,su,es,no},4,M[i]);
            return;
        }
    }
}
void program_pulibot()
{
    for(int i=-2;i<=6;i++){
        for(int j=-2;j<=6;j++){
            for(int k=-2;k<=6;k++){
                for(int f=-2;f<=6;f++){
                    for(int h=-2;h<=6;h++){
                        solve(i,j,k,f,h);
                    }
                }
            }
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...