# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1272612 | pvpwarrior | Parrots (IOI11_parrots) | C++20 | 0 ms | 0 KiB |
void encode(int N, int M[]){
int C = 0;
send(C);
for (int i = 0; i < N; ++i)
{
M[i]++;
string s = "";
while(M[i]){
if (M[i]%2)
{
s+="1";
}
else{
s+="0";
}
M[i]/=2;
}
reverse(s.begin(), s.end());
// cout << s << " ";
for (auto x: s){
if(x=='1'){
C++;
}
send(C);
}
C+=2;
}
return;
}
void decode(int N, int L, int X[]){
sort(X, X+L);
string s = "";
for (int i = 1; i < L; ++i)
{
if (X[i]==X[i-1])
{
s += "0";
}
else if(X[i]==X[i-1]+1){
s += "1";
}
else{
int C = std::stoi(s, nullptr, 2);
output(C-1);
s = "";
if (X[i]==X[i-1]+2)
{
s = "0";
}
else{
s = "1";
}
}
}
int C = std::stoi(s, nullptr, 2);
output(C-1);
return;
}