Submission #897035

#TimeUsernameProblemLanguageResultExecution timeMemory
897035irmuunRobot Contest (IOI23_robot)C++17
6 / 100
98 ms6116 KiB
#include<bits/stdc++.h>
#include "robot.h"
 
using namespace std;
 
#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()
 
//west-zuun
//south-dood
//east-baruun
//north-deed
string s="TWSEN";
 
vector<int>u[6];
vector<int>t={-1,4,5,2,3};
 
void program_pulibot(){
    u[0]={1,2,3,4};
    u[1]={2,3,4,1};
    u[2]={3,4,1,2};
    u[3]={4,1,2,3};
    u[4]={1,2,3,4};
    vector<int>v(5);
    v[0]=0;
    for(v[0]=0;v[0]<=6;v[0]++){//cur
        for(v[1]=-2;v[1]<=6;v[1]++){//west
            for(v[2]=-2;v[2]<=6;v[2]++){//south
                for(v[3]=-2;v[3]<=6;v[3]++){//east
                    for(v[4]=-2;v[4]<=6;v[4]++){//north
                        //check backward
                        bool back=false,forw=false;
                        for(int i=1;i<5;i++){
                            if(v[i]==6){
                                back=true;
                            }
                            if(v[i]==1){
                                forw=true;
                            }
                        }
                        if(back==true&&v[1]==-2&&v[4]==-2){
                            forw=true;
                        }
                        if(v[2]==-2&&v[3]==-2&&(v[1]==1||v[4]==1)){
                            set_instruction(v,1,s[0]);
                            continue;
                        }
                        if(forw){
                            for(int i=1;i<5;i++){
                                if(v[i]==6){
                                    set_instruction(v,1,s[i]);
                                    break;
                                }
                            }
                            continue;
                        }
                        if(v[2]==-2&&v[3]==-2&&(v[1]==4||v[4]==3)){
                            back=true;
                        }
                        if(back){
                            for(int i=1;i<5;i++){
                                if(v[i]>0&&v[i]<6){
                                    set_instruction(v,6,s[i]);
                                    break;
                                }
                            }
                            continue;
                        }
                        if(v[0]==0){
                            if(v[3]>-1){
                                set_instruction(v,4,s[3]);
                            }
                            else if(v[2]>-1){
                                set_instruction(v,3,s[2]);
                            }
                            else{
                                if(v[1]==4){
                                    set_instruction(v,0,s[1]);
                                }
                                else{
                                    set_instruction(v,0,s[4]);
                                }
                            }
                        }
                        else if(v[0]==4){
                            if(v[2]>-1){
                                set_instruction(v,3,s[2]);
                            }
                            else{
                                if(v[1]==4){
                                    set_instruction(v,0,s[1]);
                                }
                                else{
                                    set_instruction(v,0,s[4]);
                                }
                            }
                        }
                        else{
                            if(v[1]==4){
                                set_instruction(v,0,s[1]);
                            }
                            else{
                                set_instruction(v,0,s[4]);
                            }
                        }
                    }
                }
            }
        }
    }
}
#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...