제출 #1298243

#제출 시각아이디문제언어결과실행 시간메모리
1298243alexiah메시지 (IOI24_message)C++20
0 / 100
2 ms804 KiB
#include "message.h" #include <bits/stdc++.h> using namespace std; /*void send_message(vector<bool> m, vector<bool> c){ int s = m.size() , n = c.size(); vector<bool> caux(n); for(int i = 0; i < n-1; i++){ if(c[i] == 0){ caux[i] = c[i+1]; } } } vector<bool> receive_message(vector<vector<bool>> R){ }*/ void send_message(vector<bool> m, vector<bool> c) { int s = m.size() , n = c.size(); vector <bool> nbool(31); bitset <16> ns (s); int j = 15; for(int i = 0; i < 31; i++){ if(c[i] == 0){ nbool[i] = ns[j]; j--; } } send_packet(nbool); for(int i = 0; i < s; i++){ if(c[i] == 1){ vector<bool> aux (31 , 1); send_packet(aux); } else{ vector<bool> aux (31 , 0); send_packet(aux); } } for(int v = 0; v < s;){ vector<bool> aux(31); int x; for(x = v; x < s; x++){ for(int i = 0; i < 31; i++){ if(c[i] == 0){ aux[i] = m[x]; } } send_packet(aux); } v += x+1; } return; } vector<bool> receive_message(vector<vector<bool>> R) { vector<bool> ans , caux , nbool; nbool = R[0]; int n = 0; for(int i = 1; i <= 31;i++){ int ones = 0 , ceros = 0; for(int j = 0; j < 31; j++){ if(R[i][j] == 1) ones++; else ceros++; } if(ones > ceros) caux.push_back(1); else caux.push_back(0); } for(int i = 0; i < caux.size(); i++){ if(caux[i] == 0){ n += pow(2 , i); } } for(int j = 32; j < R.size(); j++){ for(int i = 0; i < n; i++){ if(caux[i] == 0){ ans.push_back(R[j][i]); } } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...