이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "communication.h"
#include<bits/stdc++.h>
using namespace std;
//
// --- Sample implementation for the task communication ---
//
// To compile this program with the sample grader, place:
// communication.h communication_sample.cpp sample_grader.cpp
// in a single folder, then open the terminal in this directory (right-click onto an empty spot in the directory,
// left click on "Open in terminal") and enter e.g.:
// g++ -std=c++17 communication_sample.cpp sample_grader.cpp
// in this folder. This will create a file a.out in the current directory which you can execute from the terminal
// as ./a.out
// See task statement or sample_grader.cpp for the input specification
//
void encode(int N, int X) {
mt19937 rng(6969);
vector<int>RE;
vector<int>F;
for(int i = 0; i < 100; i ++)
RE.push_back(i * 2);
for(int i = 200; i < 250; i += 1)RE.push_back(i);
for(int i = 0; i < 100; i += 1){
if(X == 2){
if(1)F.push_back(0),F.push_back(0);
else F.push_back(0),F.push_back(1);
}
else{
if(1)F.push_back(1),F.push_back(1);
else F.push_back(1),F.push_back(0);
}
}
for(int i = 0; i < 50; i += 1)F.push_back(rand()%2);
shuffle(RE.begin(),RE.end(),rng);
for(int i = 0; i < 150; i += 1){
if(RE[i] < 200)
send(F[RE[i]]),send(F[RE[i] + 1]);
else
send(F[RE[i]]);
}
}
std::pair<int, int> decode(int N) {
mt19937 rng(6969);
vector<int>RE;
vector<int>F;
for(int i = 0; i < 100; i ++)
RE.push_back(i * 2);
for(int i = 200; i < 250; i += 1)RE.push_back(i);
for(int i = 0; i < 250; i += 1)F.push_back(i);
shuffle(RE.begin(),RE.end(),rng);
for(int i = 0; i < 100; i += 1){
if(RE[i] < 200){
F[RE[i]] = receive();
F[RE[i] + 1] = receive();
}
else F[RE[i]] = receive();
}
for(int i = 0; i < 200; i += 2){
if(i % 2 == 0 && F[i] == 0 && F[i + 1] == 0) return {1, 2};
}
return {1, 3};
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |