Submission #958589

#TimeUsernameProblemLanguageResultExecution timeMemory
958589nguyentunglamRobot Contest (IOI23_robot)C++17
24 / 100
99 ms5908 KiB
#include "robot.h"
#ifdef ngu
#include "grader.cpp"
#endif // ngu
#include<bits/stdc++.h>
using namespace std;

void program_pulibot()
{
  for(int cur = 0; cur <= 4; cur++) for(int west = -2; west <= 4; west++) {
    for(int south = -2; south <= 4; south++) for(int east = -2; east <= 4; east++) for(int north = -2; north <= 4; north++) {
      vector<int> state = {cur, west, south, east, north};
//
//      if (east == -2 && south == -2 && cur == 2) {
//        set_instruction(state, 1, 'W');
//        continue;
//      }

      if (east == -2 && south == -2 && cur == 0) {
        if (north == 3) set_instruction(state, 1, 'N');
        else if (west == 3) set_instruction(state, 1, 'W');
        else if (north == 2) set_instruction(state, 1, 'N');
        else if (west == 2) set_instruction(state, 1, 'W');
        continue;
      }

      int cnt = (south == 1) + (east == 1) + (west == 1) + (north == 1) + (cur == 1);
      //explore
      if (cur == 0 || (cur == 2 && cnt == 0)) {
        if (south == 0) set_instruction(state, 2, 'S');
        else if (east == 0) set_instruction(state, 2, 'E');
        else if (west == 0) set_instruction(state, 2, 'W');
        else if (north == 0) set_instruction(state, 2, 'N');

        else if (south == 2) set_instruction(state, 3, 'S');
        else if (east == 2) set_instruction(state, 3, 'E');
        else if (west == 2) set_instruction(state, 3, 'W');
        else if (north == 2) set_instruction(state, 3, 'N');
      }
      //erase
      else {
        if (north == -2 && west == -2 && south != 3 && east != 3 && (cur == 1 || cur == 2)) {
          set_instruction(state, 1, 'T');
          continue;
        }
        if (cur == 1 || cur == 2) {
          if (south == 3) set_instruction(state, 1, 'S');
          else if (east == 3) set_instruction(state, 1, 'E');
          else if (west == 3) set_instruction(state, 1, 'W');
          else if (north == 3) set_instruction(state, 1, 'N');

          else if (south == 2) set_instruction(state, 1, 'S');
          else if (east == 2) set_instruction(state, 1, 'E');
          else if (west == 2) set_instruction(state, 1, 'W');
          else if (north == 2) set_instruction(state, 1, 'N');
        }
        else {
          if (south == 3) set_instruction(state, 4, 'S');
          else if (east == 3) set_instruction(state, 4, 'E');
          else if (west == 3) set_instruction(state, 4, 'W');
          else if (north == 3) set_instruction(state, 4, 'N');

          else if (south == 4) set_instruction(state, 0, 'S');
          else if (east == 4) set_instruction(state, 0, 'E');
          else if (west == 4) set_instruction(state, 0, 'W');
          else if (north == 4) set_instruction(state, 0, 'N');

          else if (south == 1) set_instruction(state, 0, 'S');
          else if (east == 1) set_instruction(state, 0, 'E');
          else if (west == 1) set_instruction(state, 0, 'W');
          else if (north == 1) set_instruction(state, 0, 'N');
        }
      }
    }
  }
}
#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...