Submission #1245923

#TimeUsernameProblemLanguageResultExecution timeMemory
1245923candi_ositosRobot Contest (IOI23_robot)C++20
0 / 100
67 ms5960 KiB
#include "robot.h"
#include <bits/stdc++.h>
using namespace std;
int li=-2;
int wa=-1;
int ns=0;
int ex=1;
int md=6;
int ret=1;
#define exp ex
#define p(a, b, c) set_instruction(a, b, c)
void si(int n, int e, int s, int w, int m){
    vector <int> ac(5);
    ac[0]=m;
    ac[4]=n;
    ac[3]=e;
    ac[2]=s;
    ac[1]=w;
    if(m<0){
        return;
    }
    if(n==li && w==li){
        if(m==ret){
            p(ac, ret, 'T');
            return;
        }
        if(m>exp && m<md){
            int adp=m;
            int dp=m;
            ++dp;
            --adp;
            if(adp==exp){
                adp=md-1;
            }
            if(dp==md){
                dp=exp+1;
            }
            if(e==ret || s==ret){
                p(ac, ret, 'T');
                return;
            }
            if(e==m){
                if(s==m || s==wa){
                    p(ac, adp, 'E');
                    return;
                }
                if(e==m || e==wa){
                    p(ac, m, 'S');
                    return;
                }
                return;
            }
            if(e==ns || e==dp){
                p(ac, m, 'E');
                return;
            }
            if(s==ns || s==dp){
                p(ac, m, 'S');
                return;
            }
            if(e==wa || e==md){
                p(ac, adp, 'S');
                return;
            }
            if(s==wa || s==md){
                p(ac, adp, 'E');
                return;
            }
        }
        if(e==wa || e==md){
            p(ac, exp+1, 'S');
            return;
        }
        if(s==wa || s==md){
            p(ac, exp+1, 'E');
            return;
        }
        return;
    }
    if(s==li && e==li){
        if(n>exp && n<md){
            p(ac, ret, 'N');
            return;
        }
        if(w>exp && w<md){
            p(ac, ret, 'W');
            return;
        }
        return;
    }
    if(m==ns){
        if(n>exp && n<md){
            p(ac, n, 'N');
            return;
        }
        if(s>exp && s<md){
            p(ac, s, 'S');
            return;
        }
        if(e>exp && e<md){
            p(ac, e, 'E');
            return;
        }
        if(w>exp && w<md){
            p(ac, w, 'W');
            return;
        }
        return;
    }
    if(m==ret){
        if(n>exp && n<md){
            p(ac, ret, 'N');
            return;
        }
        if(w>exp && w<md){
            p(ac, ret, 'W');
            return;
        }
        if(s>exp && s<md){
            p(ac, ret, 'S');
            return;
        }
        if(e>exp && e<md){
            p(ac, ret, 'E');
            return;
        }
        if(n==ret){
            p(ac, ns, 'N');
            return;
        }
        if(s==ret){
            p(ac, ns, 'S');
            return;
        }
        if(e==ret){
            p(ac, ns, 'E');
            return;
        }
        if(w==ret){
            p(ac, ns, 'W');
            return;
        }
        return;
    }
    if(n==ret || s==ret || e==ret || w==ret){
        int mwr=m-1;
        if(mwr<=exp){
            mwr=md-1;
        }
        if(n==mwr){
            p(ac, ret, 'N');
            return;
        }
        if(s==mwr){
            p(ac, ret, 'S');
            return;
        }
        if(e==mwr){
            p(ac, ret, 'E');
            return;
        }
        if(w==mwr){
            p(ac, ret, 'W');
            return;
        }
        return;
    }
    if(e==ns){
        p(ac, m, 'E');
        return;
    }
    if(s==ns){
        p(ac, m, 'S');
        return;
    }
    if(w==ns){
        p(ac, m, 'W');
        return;
    }
    if(n==ns){
        p(ac, m, 'N');
        return;
    }
    int mnd=m;
    ++mnd;
    if(mnd==md){
        mnd=exp;
    }
    if(n==mnd || s==mnd || e==mnd || w==mnd){
        if(e==mnd){
            p(ac, m, 'E');
            return;
        }
        if(s==mnd){
            p(ac, m, 'S');
            return;
        }
        if(w==mnd){
            p(ac, m, 'W');
            return;
        }
        if(n==mnd){
            p(ac, m, 'N');
            return;
        }
        return;
    }
    if(m>exp && m<md){
        int amnd=m;
        ++amnd;
        if(amnd==md){
            amnd=exp+1;
        }
        if(e==amnd){
            p(ac, m, 'E');
            return;
        }
        if(s==amnd){
            p(ac, m, 'S');
            return;
        }
        if(w==amnd){
            p(ac, m, 'W');
            return;
        }
        if(n==amnd){
            p(ac, m, 'N');
            return;
        }
        int mru=m;
        --mru;
        if(mru<=exp){
            mru=md-1;
        }
        if(n==m || s==m || e==m || w==m){
            if(e==mru){
                p(ac, e, 'E');
                return;
            }
            if(s==mru){
                p(ac, s, 'S');
                return;
            }
            if(w==mru){
                p(ac, w, 'W');
                return;
            }
            if(n==mru){
                p(ac, n, 'N');
                return;
            }
        }
        if(e==mru){
            p(ac, md, 'E');
            return;
        }
        if(s==mru){
            p(ac, md, 'S');
            return;
        }
        if(w==mru){
            p(ac, md, 'W');
            return;
        }
        if(n==mru){
            p(ac, md, 'N');
            return;
        }
    }
    return;
}
void program_pulibot(){
    for(int i=-2; i<=md; ++i){
        for(int j=-2; j<=md; ++j){
            for(int k=-2; k<=md; ++k){
                for(int l=-2; l<=md; ++l){
                    for(int m=0; m<=md; ++m){
                        si(i, j, k, l, m);
                    }
                }
            }
        }
    }
    return;
}
#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...