Submission #481329

#TimeUsernameProblemLanguageResultExecution timeMemory
481329unknownnnnParrots (IOI11_parrots)C++14
0 / 100
8 ms1156 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>

using namespace std;

vector<vector<int> > niza;

void encode(int n,int m[])
{
    for(int i=0 ; i<n ; i++)
    {
        string broj="";
        int br=m[i];
        while(br>0)     //konverzija od dec vo bin na brojot
        {
            broj+=to_string(br%2);
            br/=2;
        }

        if(broj.size()<8)
        {
            for(int j=8-broj.size() ; j>0 ; j--)
            {
                broj+="0";
            }
        }
        reverse(broj.begin(), broj.end());

        int o=i;
        string oo="";
        while(o>0)     //konverzija od dec vo bin na
        {
            oo+=to_string(o%2);
            o/=2;
        }
        if(oo.size()<4)
        {
            for(int j=4-oo.size() ; j>0 ; j--)
            {
                oo+="0";
            }
        }
        reverse(oo.begin(), oo.end());

        for(int j=0 ; j<8 ; j++)
        {
            int pozicija=j;
            string poz="";
            string prakjanje="";

            while(pozicija>0)     //konverzija na poz na brojot vo bin
            {
                poz+=to_string(pozicija%2);
                pozicija/=2;
            }

            if(poz.size()<3)
            {
                for(int p=3-poz.size() ; p>0 ; p--)
                {
                    poz+="0";
                }
            }
            reverse(poz.begin(), poz.end());

            char digit=broj[j];
            prakjanje=oo+poz+digit;

            int dec=0;
            for(int q=prakjanje.size(); q>=0; q--)
            {
                if(prakjanje[q]=='1')
                {
                    dec+=pow(2,q);
                }
            }

            send(dec);
        }

    }
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>

using namespace std;

vector<vector<int> > niza;

void decode(int n, int l, int m[])
{
    for(int i=0 ; i<l ; i++)
    {
        string broj="";
        int br=m[i];
        while(br>0)     //konverzija od dec vo bin na brojot
        {
            broj+=to_string(br%2);
            br/=2;
        }

        if(broj.size()<8)
        {
            for(int j=8-broj.size() ; j>0 ; j--)
            {
                broj+="0";
            }
        }
        reverse(broj.begin(), broj.end());

        string poz="";
        poz=broj.substr(0,4);   //od koja, dolzhina
        int dec_poz=0;
        for(int q=poz.size(); q>=0; q--)
        {
            if(poz[q]=='1')
            {
                dec_poz+=pow(2,q);
            }
        }

        string poz_vo_br=broj.substr(7,3);
        int dec_poz_vo_br=0;
        for(int q=poz_vo_br.size(); q>=0; q--)
        {
            if(poz_vo_br[q]=='1')
            {
                dec_poz_vo_br+=pow(2,q);
            }
        }

        char cifra=broj[7];
        int nosena=cifra-'0';

        niza[dec_poz][dec_poz_vo_br]=nosena;
    }

    for(int i=0 ; i<n ; i++)
    {
        string s="";
        for(int j=0 ; j<8 ; j++)
        {
            s+=to_string(niza[i][j]);
        }
        int b=0;
        for(int q=s.size(); q>=0; q--)
        {
            if(s[q]=='1')
            {
                b+=pow(2,q);
            }
        }
        output(b);
    }

}
#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...