제출 #998716

#제출 시각아이디문제언어결과실행 시간메모리
998716MilosMilutinovic로봇 대회 (IOI23_robot)C++17
6 / 100
100 ms5872 KiB
#include "robot.h"
#include <bits/stdc++.h>

using namespace std;
 
void program_pulibot() {
  auto Add = [&](int my, int up, int down, int left, int right, int val, char dir) {
    set_instruction({my, left, down, right, up}, val, dir);
  };
  for (int up = -2; up <= 4; up++) {
    for (int down = -2; down <= 4; down++) {
      for (int left = -2; left <= 4; left++) {
        for (int right = -2; right <= 4; right++) {
          for (int my = 0; my <= 4; my++) {
            int cnt = 0;
            if (down > 0) {
              cnt += 1;
            }
            if (right > 0) {
              cnt += 1;
            }
            if (cnt == 2) {
              continue;
            }
            if (down == -2 && right == -2) {
              if (up > 0) {
                Add(my, up, down, left, right, 1, 'N');
              } else if (left > 0) {
                Add(my, up, down, left, right, 1, 'W');
              }
              continue;
            }
            if (cnt == 0) {
              if (my == 0) {
                if (right == 0) {
                  Add(my, up, down, left, right, 1, 'E');
                } else {
                  Add(my, up, down, left, right, 1, 'H');
                }
              } else if (my == 1) {
                if (down == 0) {
                  Add(my, up, down, left, right, 2, 'S');
                } else {
                  Add(my, up, down, left, right, 2, 'H');
                }
              } else {
                if (up > 0) {
                  Add(my, up, down, left, right, 0, 'N');
                } else if (left > 0) {
                  Add(my, up, down, left, right, 0, 'W');
                }
              }
            } else {
              if (up == -2 && left == -2) {
                Add(my, up, down, left, right, 1, 'T');
              } else {
                if (up > 0) {
                  Add(my, up, down, left, right, 1, 'N');
                } else {
                  if (left > 0) {
                    Add(my, up, down, left, right, 1, 'W');
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
#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...