| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1337919 | aritro_ | 메시지 (IOI24_message) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
#define pb push_back
#define ff first
#define ss second
#define all(a) a.begin(),a.end()
vector<bool> C(31);
vector<vector<bool>> packets;
bool random_num(){
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<int> dist(0, 1);
return dist(gen);
}
void send_packet(vector<bool> a){
vector<bool> r(31);
for(int i=0;i<31;i++){
if(C[i]==0){
r[i]=a[i];
continue;
}
r[i]=random_num();
}
packets.pb(r);
}
void send_message(vector<bool>M,vector<bool>C);
vector<bool> receive_message(vector<vector<bool>>R){
map<int,bool> chk;
for(int i=0;i<31;i++) chk[i]=1;
int n=R.size();
for(int i=0;i<36;i++) for(int j=0;j<31;j++) chk[j]&=R[i][j];
vector<bool> ans;
for(int i=36;i<n-2;i++){
for(int j=0;j<31;j++){
if(chk[j]) ans.pb(R[i][j]);
}
}
for(int i=0;i<31;i++) chk[i]&=R[n-2][i];
//for(int i=0;i<31;i++) cout<<chk[i]<<' ';
//cout<<endl;
for(int i=0;i<31;i++){
if(chk[i]){
ans.pb(R[n-1][i]);
}
}
return ans;
}