Submission #1323238

#TimeUsernameProblemLanguageResultExecution timeMemory
1323238simona1230Flight to the Ford (BOI22_communication)C++20
0 / 100
11 ms3084 KiB
#include"communication.h" #include <bits/stdc++.h> using namespace std; void sendnum(int x) { if(x==1) { for(int i=0;i<4;i++) send(0); } if(x==2) { for(int i=0;i<4;i++) send(1); } if(x==3) { send(1); send(0); send(0); send(1); } } vector<int> v[200001]; void connect(int x,int y) { for(int i=0;i<16;i++) { bool pos=1; for(int j=0;j<2;j++) { int b1=(1<<j)&i; int b2=(1<<(j+1))&i; if(b1&&b2)pos=0; } if(pos==0)continue; //cout<<(x^i)<<" - "<<y<<endl; v[x^i].push_back(y); } } void encode(int N, int X) { connect(0,1); connect(15,2); connect(9,3); sendnum(X); } std::pair<int, int> decode(int N) { connect(0,1); connect(15,2); connect(9,3); int x=0; for(int i=0;i<4;i++) { int b=receive(); if(b)x+=(1<<i); } //cout<<x<<" !"<<endl; int num1=v[x][0]; int num2=v[x][0]; if(v[x].size()>1)num2=v[x][1]; //cout<<num1<<" + "<<num2<<endl; return {num1,num2}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...