# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
954223 | PM1 | Flight to the Ford (BOI22_communication) | C++17 | 11 ms | 332 KiB |
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 <bits/stdc++.h>
#include "communication.h"
using namespace std;
void encode(int n,int x){
int last=30;
for(int i=1;i>=0;i--){
int z=(x&(1<<i))?1:0;
int a=send(z),b=send(z);
if(a==b){
if(last==30)continue;
z=(x&(1<<last))?1:0;
a=send(z);
b=send(z);
if(a==b)
last=30;
}
else
last=i;
}
}
pair<int,int> decode(int n){
int last=30;
int a,b;
for(int i=1;i>=0;i--){
int x=receive(),y=receive();
a+=(x<<i);
b+=(y<<i);
if(x==y){
if(last==30)continue;
x=receive();
y=receive();
if(x==y){
if((a&(1<<last))==(x<<last))
b=a;
else
a=b;
last=30;
}
else{
if((a&(1<<last))!=(x<<last))
swap(a,b);
}
}
else
last=i;
}
return make_pair(a,b);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |