Submission #1241523

#TimeUsernameProblemLanguageResultExecution timeMemory
1241523SalihSahinRobot Contest (IOI23_robot)C++20
0 / 100
1 ms576 KiB
#include "bits/stdc++.h"
#include "robot.h"
#define pb push_back
using namespace std;

int a = 3, b = 4, c = 5, col = 6; // col: boyama rengimiz, a: 2. cocuguma git, b: 3. cocuguma git, c: parentıma cık
vector<int> pos = {-2, -1, 0, 1, a, b, col};

void program_pulibot(){
   for(auto s0: pos) for(auto s1: pos) for(auto s2: pos) for(auto s3: pos) for(auto s4: pos){ // ben sol asagi sag yukarı
      if(s2 == -2 && s3 == -2){ // son cell
         if(s0 == col){
            set_instruction({s0, s1, s2, s3, s4}, 1, 'T'); // bitir
         }
         else if(s0 == 0){
            if(s1 > 0){
               set_instruction({s0, s1, s2, s3, s4}, col, 'W');
            }
            else{
               set_instruction({s0, s1, s2, s3, s4}, col, 'N');
            }
         }

         continue;
      }

      if(s1 == -2 && s4 == -2){ // baslangic celline yanımda col olan bir cell varken gelirsem 1e boyayıp terse trackle
         if(max({s1, s2, s3, s4}) == col){
            if(s1 == col){
               set_instruction({s0, s1, s2, s3, s4}, 1, 'W');
            }
            else if(s2 == col){
               set_instruction({s0, s1, s2, s3, s4}, 1, 'S');
            }
            else if(s3 == col){
               set_instruction({s0, s1, s2, s3, s4}, 1, 'E');
            }
            else if(s4 == col){
               set_instruction({s0, s1, s2, s3, s4}, 1, 'N');
            }
            continue;
         }
      }

      if(s0 == col){ // bir cell colla boyandıysa trackliyorum demek
         if(s1 == col){
            set_instruction({s0, s1, s2, s3, s4}, 1, 'W');
         }
         else if(s2 == col){
            set_instruction({s0, s1, s2, s3, s4}, 1, 'S');
         }
         else if(s3 == col){
            set_instruction({s0, s1, s2, s3, s4}, 1, 'E');
         }
         else if(s4 == col){
            set_instruction({s0, s1, s2, s3, s4}, 1, 'N');
         }

         continue;
      }

      if(max({s1, s2, s3, s4}) == col){ // 1e geri donmeye calısıyoruz
         if(s1 != col && s1 > 0){
            set_instruction({s0, s1, s2, s3, s4}, col, 'W');
         }
         else if(s2 != col && s2 > 0){
            set_instruction({s0, s1, s2, s3, s4}, col, 'S');
         }
         else if(s3 != col && s3 > 0){
            set_instruction({s0, s1, s2, s3, s4}, col, 'E');
         }
         else if(s4 != col && s4 > 0){
            set_instruction({s0, s1, s2, s3, s4}, col, 'N');
         }
         continue;
      }

      if(s0 == c){
         if(s1 > 0){
            set_instruction({s0, s1, s2, s3, s4}, 0, 'W');
         }
         else if(s2 > 0){
            set_instruction({s0, s1, s2, s3, s4}, 0, 'S');
         }
         else if(s3 > 0){
            set_instruction({s0, s1, s2, s3, s4}, 0, 'E');
         }
         else if(s4 > 0){
            set_instruction({s0, s1, s2, s3, s4}, 0, 'N');
         }
         continue;
      }

      vector<char> clist;
      int ch = 0;
      if(s1 == 0){
         ch++;
         clist.pb('W');
      }
      if(s2 == 0){
         ch++;
         clist.pb('S');
      }
      if(s3 == 0){
         ch++;
         clist.pb('E');
      }
      if(s4 == 0){
         ch++;
         clist.pb('N');
      }

      if(s0 == 0){
         set_instruction({s0, s1, s2, s3, s4}, a, clist[0]);
         continue;
      }
      if(s0 == a){
         set_instruction({s0, s1, s2, s3, s4}, b, clist[1]);
         continue;
      }
      if(s0 == b){
         set_instruction({s0, s1, s2, s3, s4}, c, clist[2]);
         continue;
      }
   }
}
#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...