This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |