#include "transmission.h"
#include<iostream>

static std::vector<bool> data;
static std::vector<bool> samples[9];

static std::vector<bool> fix(int n)
{
    std::vector<bool> ans;
    int ind[9] = {0};
    for(int i = 0; i < n; i ++)
    {
        int ones = 0;
        for(int j = 0; j < 9; j ++)
        {
            ones += samples[j][ind[j]];
        }
        bool cor = (ones >= 5);

        for(int j = 0; j < 9; j ++)
        {
            if(samples[j][ind[j]] == cor)   ind[j] ++;
        }

        ans.push_back(cor);
    }
    return ans;
}

std::vector<bool> receive(const std::vector<bool>& message, int n, int d)
{
    int m = message.size();
    int ones = 0;
    int sc = 0;
    for(int i = 0; i < m; i ++)
    {
        if(message[i] == 0)
        {
            if(ones > 75)
            {
                /// recieve
                i ++;
                for(int j = 0; j < n; j ++)
                {
                    samples[sc].push_back(message[i]);
                    i ++;
                }
                sc ++;
            } else {
                ones = 0;
            }
        } else {
            ones ++;
        }
    }

    data = fix(n);
    /*std::cout<< "HI";
    for(int i = 0; i < 10; i ++)
    {
        for(int j = 0; j < samples[i].size(); j ++)
        {
            std::cout << samples[i][j];
        }
        std::cout << std::endl;
    }


    for(int i: data)
    {
        std::cout << i;
    }
    std::cout << std::endl;*/
    return data;
}
