#define ll long long

#include "vision.h"
#include<bits/stdc++.h>
using namespace std;

vector<int> getVisionPattern1d()
{
    return {1,1,1,2,1,3};
}

int getMove1d(vector<int> v)
{
    if(v.size()==3){
        ll l=v[0],r=v[2];

        if(l==3 && r==1) return 0;
        if(l==1 && r==3) return 2;

        if(l==3 && r==2) return 0;
        if(l==3 && r==2) return 2;

        if(l==1 && r==2) return 2;
        if(l==2 && r==1) return 0;

        if(l==1 && r==1) return 0;
    }
    if(v.size()==5){
        ll l=v[0],r=v[4];

        if(r==3) return 4;
        else return 0;
    }
    if(v.size()==7){
        ll l=v[0],r=v[6];

        if(v[1]==2) return 6;
        else return 0;
    }
}

vector<vector<int>> getVisionPattern2d()
{
    return {{1,1,1,1},{1,4,1,1},{1,1,2,1},{1,1,1,1}};
}

pair<int, int> getMove2d(vector<vector<int>> v)
{
    ll c=v.size()/2;

    if(c==1){
        for(ll i=0;i<3;i++){
            for(ll j=0;j<3;j++) if(v[i][j]!=1) return {i,j};
        }
        return {2,1};
    }

    if(c==2){
        for(ll i=0;i<5;i++){
            for(ll j=0;j<5;j++) if(v[i][j]==4) return {i,j};
        }
    }

    if(c==4){
        if(v[c+1][c+1]==2) return {8,8};
        if(v[c+1][c-1]==2) return {8,0};
        if(v[c-1][c+1]==2) return {0,8};
        if(v[c-1][c-1]==2) return {0,0};
    }
}
