Submission #1283375

#TimeUsernameProblemLanguageResultExecution timeMemory
1283375anfiRobot Contest (IOI23_robot)C++20
0 / 100
1096 ms336 KiB
#include "robot.h" #include <bits/stdc++.h> using namespace std; const int nt = -4, ve = -3, sp = -2, bl = -1, pa = 0; const int w = 1, s = 2, e = 3, n = 4; const string c = "HWSEN"; int po = 0; pair<char,int> now(int x){ return {c[x], x}; } int pr(int x){ return x % 4 + 1; } int nx(int x){ return (x + 1) % 4 + 1; } pair<char,int> cek(vector<int> &v){ for(int i = 0; i < 5; i++) v[i]--; bool st = (v[w] == ve && v[n] == ve); bool en = (v[e] == ve && v[s] == ve); if(v[po] == bl){ if(st){ if(v[s] == bl) return now(s); if(v[e] == bl) return now(e); return {'-', nt}; } if(en){ return {'H', e}; } for(int i = 1; i < 5; i++){ if(v[i] == pr(i)) return now(i); } return {'-', nt}; } if(v[po] <= pa) return {'-', nt}; if(v[v[po]] == pr(v[po])){ int i = nx(v[po]); while(v[i] != bl && v[i] != pr(i)) i = nx(i); return now(i); } for(int i = 1; i < 5; i++){ if(v[i] == pr(i)) return {c[i], v[po]}; } if(st || count(v.begin(), v.end(), pa) > 0){ if(en) return {'T', pa}; else return {c[v[po]], pa}; } return {c[v[po]], bl}; } void program_pulibot(){ vector<int> s(5); for(s[0] = -2; s[0] < 4; s[0]++){ for(s[1] = -2; s[1] < 5; s[1]++){ for(s[2] = -2; s[2] < 5; s[2]++){ for(s[3] = -2; s[3] < 5; s[3]++){ for(s[4] = -2; s[4] < 5; s[4]++){ auto [act, val] = cek(s); if(val != nt){ set_instruction(s, val + 1, act); } } } } } } }
#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...