#include "vision.h"

#include <bits/stdc++.h>

using namespace std;

std::vector<int> getVisionPattern1d()
{
    return {1, 1, 3, 1, 2, 1, 2};
    // 1 3 1 4 2 1 1 3 1 4 2 1 1 3 1 4 2 1
    // de pe 1 merg pe orice care nu e 1
    // de pe 2 merg pe 4
    // de pe 4 merg pe un 3 care e in capat
    // de pe 3 merge pe un 4
}

int getMove1d(std::vector<int> v)
{
    if(v.size() <= 3) {
        // sunt pe 1
        // merg pe cv care nu e 1
        for(int i = 0; i < v.size(); i++) {
            if(v[i] != 1) {
                return i;
            }
        }
    }
    if(v.size() <= 5) {
        // sunt pe 2
        vector<int> crt;
        crt = {2, 1, 2, 1, 1};
        if(v == crt) return 4;
        crt = {1, 1, 2, 1, 2};
        if(v == crt) return 0;

        crt = {3, 1, 2, 1, 2};
        if(v == crt) return 4;
        crt = {2, 1, 2, 1, 3};
        if(v == crt) return 0;
    }
    if(v.size() <= 7) {
        vector<int> crt;
        crt = {2, 1, 1, 3, 1, 2, 1};
        if(v == crt) return 6;
        crt = {1, 2, 1, 3, 1, 1, 2};
        if(v == crt) return 0;
    }
    return 0;
}

std::vector<std::vector<int>> getVisionPattern2d()
{
    return {{1}};
}

std::pair<int, int> getMove2d(std::vector<std::vector<int>> v)
{
    return {0, 0};
}
