#include "transmission.h"

static std::vector<bool> data;

std::vector<bool> receive(const std::vector<bool>& message, int n, int d)
{
    std::vector<bool> result;
    int onescount = 0, zeroscount = 0, encode;
    bool lastbit = message[0], first= true;
    for(auto b: message)
    {
        if(!first)
        {
            if(b == lastbit)
            {
                if(b)
                    onescount++;
                else
                    zeroscount++;
            }
            else
            {
                if(!lastbit)
                {
                    encode = std::max(zeroscount,onescount);
                    if(encode == 2)
                    {
                        result.push_back(0);
                        result.push_back(1);
                    }
                    if(encode == 3)
                    {
                        result.push_back(1);
                        result.push_back(0);
                    }
                    if(encode == 4)
                    {
                        result.push_back(1);
                        result.push_back(1);
                    }
                    if(encode == 5)
                    {
                        result.push_back(0);
                        result.push_back(0);
                    }
                    zeroscount = 0;
                    onescount = 0;
                }
                if(b)
                    onescount;
                else
                    zeroscount++;
            }
        }
        else
        {
            first = false;
        }
        lastbit = b;
    }
    return result;
}
