Submission #1316274

#TimeUsernameProblemLanguageResultExecution timeMemory
1316274candi_ositosRobot Contest (IOI23_robot)C++20
6 / 100
38 ms6248 KiB
#include "robot.h"
#include <bits/stdc++.h>
using namespace std;
int li=-2;
int wa=-1;
int ns=0;
int ex=3;
int md=7;
int ret=1;
int qu=6;
#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(n==md || s==md || e==md || w==md){
        if(s==li && e==li){
            if(n==md){
                p(ac, ret, 'N');
                return;
            }
            if(w==md){
                p(ac, ret, 'W');
                return;
            }
            return;
        }
        if(m==md){
            if(n==md){
                p(ac, ret, 'N');
                return;
            }
            if(s==md){
                p(ac, ret, 'S');
                return;
            }
            if(e==md){
                p(ac, ret, 'E');
                return;
            }
            if(w==md){
                p(ac, ret, 'W');
                return;
            }
            return;
        }
        if(n>=ret && n<=ex){
            p(ac, md, 'N');
            return;
        }
        if(s>=ret && s<=ex){
            p(ac, md, 'S');
            return;
        }
        if(e>=ret && e<=ex){
            p(ac, md, 'E');
            return;
        }
        if(w>=ret && w<=ex){
            p(ac, md, 'W');
            return;
        }
        return;
    }
    if(n==li && w==li){
        if(m==md){
            p(ac, ret, 'T');
            return;
        }
        if((s>=ret) && (s<=ex)){
            if(e>ns){
                p(ac, (m-1)%3+1, 'E');
                return;
            }
            if(e>wa){
                p(ac, md, 'S');
                return;
            }
        }
        if((e>=ret) && (e<=ex)){
            if(s>ns){
                p(ac, (m-1)%3+1, 'S');
                return;
            }
            if(s>wa){
                p(ac, md, 'E');
                return;
            }
        }
        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 || s==md){
                    p(ac, adp, 'E');
                    return;
                }
                if(e==m || e==wa || e==md){
                    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;
        }
        p(ac, exp+1, 'E');
        return;
    }
    if(s==li && e==li){
        if(n>exp && n<md){
            p(ac, (n%3+1), 'N');
            return;
        }
        if(w>exp && w<md){
            p(ac, (w%3+1), '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<=ex){
        int xfce=m+4;
        if(xfce==md){
            xfce=ex+1;
        }
        if(n==xfce){
            p(ac, m, 'N');
            return;
        }
        if(s==xfce){
            p(ac, m, 'S');
            return;
        }
        if(e==xfce){
            p(ac, m, 'E');
            return;
        }
        if(w==xfce){
            p(ac, m, 'W');
            return;
        }
        if(n==m+3){
            p(ac, m, 'N');
            return;
        }
        if(s==m+3){
            p(ac, m, 'S');
            return;
        }
        if(e==m+3){
            p(ac, m, 'E');
            return;
        }
        if(w==m+3){
            p(ac, m, 'W');
            return;
        }
        xfce-=3;
        if((n==m || s==m || e==m || w==m) && (n==xfce || e==xfce || s==xfce || w==xfce)){
            if(n==xfce){
                p(ac, xfce, 'N');
                return;
            }
            if(s==xfce){
                p(ac, xfce, 'S');
                return;
            }
            if(e==xfce){
                p(ac, xfce, 'E');
                return;
            }
            if(w==xfce){
                p(ac, xfce, 'W');
                return;
            }
        }
        if(n==(m-1)%3+1){
            p(ac, ns, 'N');
            return;
        }
        if(s==(m-1)%3+1){
            p(ac, ns, 'S');
            return;
        }
        if(e==(m-1)%3+1){
            p(ac, ns, 'E');
            return;
        }
        if(w==(m-1)%3+1){
            p(ac, ns, 'W');
            return;
        }
        xfce=1+xfce%3;
        if(n==xfce){
            p(ac, ns, 'N');
            return;
        }
        if(s==xfce){
            p(ac, ns, 'S');
            return;
        }
        if(e==xfce){
            p(ac, ns, 'E');
            return;
        }
        if(w==xfce){
            p(ac, ns, 'W');
            return;
        }
        xfce+=3;
        if(n==xfce){
            p(ac, m, 'N');
            return;
        }
        if(s==xfce){
            p(ac, m, 'S');
            return;
        }
        if(e==xfce){
            p(ac, m, 'E');
            return;
        }
        if(w==xfce){
            p(ac, m, 'W');
            return;
        }
        if(n>exp && n<md){
            p(ac, m, 'N');
            return;
        }
        if(w>exp && w<md){
            p(ac, m, 'W');
            return;
        }
        if(s>exp && s<md){
            p(ac, m, 'S');
            return;
        }
        if(e>exp && e<md){
            p(ac, m, 'E');
            return;
        }
        return;
    }
    if((n<=ex && n>=ret) || (s<=ex && s>=ret) || (e<=ex && e>=ret) || (w<=ex && w>=ret)){
        int npa=m+1;
        if(npa==md){
            npa=ex+1;
        }
        if(n==npa){
            p(ac, m-3, 'N');
            return;
        }
        if(s==npa){
            p(ac, m-3, 'S');
            return;
        }
        if(e==npa){
            p(ac, m-3, 'E');
            return;
        }
        if(w==npa){
            p(ac, m-3, 'W');
            return;
        }
        if(n==m){
            p(ac, m-3, 'N');
            return;
        }
        if(s==m){
            p(ac, m-3, 'S');
            return;
        }
        if(e==m){
            p(ac, m-3, 'E');
            return;
        }
        if(w==m){
            p(ac, m-3, 'W');
            return;
        }
        if(n==(m-1)%3+1){
            p(ac, ns, 'N');
            return;
        }
        if(s==(m-1)%3+1){
            p(ac, ns, 'S');
            return;
        }
        if(e==(m-1)%3+1){
            p(ac, ns, 'E');
            return;
        }
        if(w==(m-1)%3+1){
            p(ac, ns, 'W');
            return;
        }
        npa=1+npa%3;
        if(n==npa){
            p(ac, ns, 'N');
            return;
        }
        if(s==npa){
            p(ac, ns, 'S');
            return;
        }
        if(e==npa){
            p(ac, ns, 'E');
            return;
        }
        if(w==npa){
            p(ac, ns, 'W');
            return;
        }
        if(n==npa+3){
            p(ac, m-3, 'N');
            return;
        }
        if(s==npa+3){
            p(ac, m-3, 'S');
            return;
        }
        if(e==npa+3){
            p(ac, m-3, 'E');
            return;
        }
        if(w==npa+3){
            p(ac, m-3, 'W');
            return;
        }
        return;
    }
    if(m==md && (e==ret || s==ret || w==ret || n==ret)){

    }
    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, 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;
        }
    }
    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...