Submission #1103074

#TimeUsernameProblemLanguageResultExecution timeMemory
1103074aaaaaarrozMessage (IOI24_message)C++17
28.35 / 100
1748 ms1240 KiB
#include <bits/stdc++.h> using namespace std; vector<bool> send_packet(vector<bool> A); void send_message(vector<bool> M, vector<bool> C){ for(int i=0;i<31;i++){ if(C[i]==true){ vector<bool>paquete(31,0); send_packet(paquete); } else{ vector<bool>paquete(31,1); send_packet(paquete); } } vector<bool>numero(31,0); int bit_real=0; for(int i=0;i<31;i++){ if(C[i]==1){ continue; } if(((1<<bit_real)&(M.size()))){ numero[i]=1; } bit_real++; } send_packet(numero); vector<bool>envio; int pos=0; while(pos<M.size()){ if(C[envio.size()]==0){ envio.push_back(M[pos]); pos++; } else{ envio.push_back(0); } if(envio.size()==31){ send_packet(envio); envio.clear(); } } while(envio.size()<31){ envio.push_back(false); if(envio.size()==31){ send_packet(envio); break; } } } vector<bool> receive_message(vector<vector<bool>> R){ vector<bool>funciona(31,false); for(int i=0;i<31;i++){ int votos=0; for(int j=0;j<31;j++){ if(R[i][j]){ votos++; } } if(votos>15){ funciona[i]=true; } } int bit_real=0; int largo=0; for(int j=0;j<31;j++){ if(funciona[j]){ if(R[31][j]){ largo+=(1<<bit_real); } bit_real++; } } vector<bool>sec; for(int i=32;i<R.size();i++){ for(int j=0;j<31;j++){ if(funciona[j]){ sec.push_back(R[i][j]); } } } while(sec.size()>largo){ sec.pop_back(); } return sec; }

Compilation message (stderr)

message.cpp: In function 'void send_message(std::vector<bool>, std::vector<bool>)':
message.cpp:29:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<bool>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |  while(pos<M.size()){
      |        ~~~^~~~~~~~~
message.cpp: In function 'std::vector<bool> receive_message(std::vector<std::vector<bool> >)':
message.cpp:74:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<bool> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |  for(int i=32;i<R.size();i++){
      |               ~^~~~~~~~~
message.cpp:81:18: warning: comparison of integer expressions of different signedness: 'std::vector<bool>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   81 |  while(sec.size()>largo){
      |        ~~~~~~~~~~^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...