Submission #1208550

#TimeUsernameProblemLanguageResultExecution timeMemory
1208550ByeWorldRobot Contest (IOI23_robot)C++20
26 / 100
349 ms9432 KiB
#include "robot.h" #include <bits/stdc++.h> #define ll long long #define fi first #define se second #define pb push_back #define lf ((id<<1)) #define rg ((id<<1)|1) #define md ((l+r)>>1) #define make set_instruction using namespace std; typedef pair<ll,ll> pii; typedef pair<pii,ll> ipii; typedef pair<vector<int>, int> pvi; const int MAXN = 1e3+10; void chmx(auto &a, auto b){ a = max(a, b); } void chmn(auto &a, auto b){ a = min(a, b); } // nw, le, dw, ri, up map<vector<int>, int> ma; int i,a,b,c,d; void bd(int col, char p){ vector<int> x; x.pb(i); x.pb(c); x.pb(b); x.pb(a); x.pb(d); // if(ma[x] == 1){ // cout << i << ' ' << c << ' ' << b << ' ' << a << ' ' << d << " pp\n"; // } // ma[x]++; make(x, col, p); } void solve(){ // if(i>=4){ // if(a==-2 && b==-2){ // bd(1, 'T'); return; // } // if(a==4){ // bd(1, 'E'); return; // } // if(b==4){ // bd(1, 'S'); return; // } // } if(i >= 4){ int can = 0; // bisa ke mana if(a>1) can += 1; if(b>1) can += 2; if(can & 2){ // S bd(i|2, 'S'); return; } else if(can & 1){ // E bd(i|1, 'E'); // ban ke E return; } else { // can = 0 if(c==-2 && d==-2){ bd(1, 'T'); return; } // mundur if(c>1){ // udh ke vis if(i&4) bd(1, 'W'); else bd(0, 'W'); return; } if(d>1){ if(i&4) bd(1, 'N'); else bd(0, 'N'); return; } } return; } if(a==-2 && b==-2){ // bawah kanan if(c>0){ bd(4, 'W'); return; } if(d>0){ bd(4, 'N'); return; } return; } bool nxsatu = 0; if(a==4||b==4||c==4||d==4) nxsatu = 1; if(nxsatu && c==-2 && d==-2){ // kiri atas kelar bd(12, 'H'); return; } if(nxsatu){ if(c>0){ bd(4, 'W'); return; } if(d>0){ bd(4, 'N'); return; } return; } int can = 0; // bisa ke mana int nw = i; if( (nw&1) == 0 && a==0) can++; if( (nw&2) == 0 && b==0) can += 2; if(can & 2){ // S bd((nw|2), 'S'); return; } else if(can & 1){ // E bd((nw|1), 'E'); // ban ke E return; } else { // can = 0 // mundur // tag sebagai ban node = 8 if(c>0){ bd(8, 'W'); return; } if(d>0){ bd(8, 'N'); return; } } } void program_pulibot() { for(int ia=0; ia<=17; ia++){ for(int aa=-2; aa<=17; aa++){ // E for(int ba=-2; ba<=17; ba++){ // S for(int ca=-2; ca<=17; ca++){ // W for(int da=-2; da<=17; da++){ // N i = ia; a = aa; b = ba; c = ca; d = da; solve(); } } } } } }
#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...