답안 #1103253

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1103253 2024-10-20T15:47:25 Z Ahmed57 메시지 (IOI24_message) C++17
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
void send_message(std::vector<bool> M, std::vector<bool> C){
    vector<vector<bool>> v;
    for(int i = 0;i<64;i++){
        v.push_back(vector<bool>(31,0));
    }
    for(int i = 0;i<31;i++){
        int la = -1;
        for(int j = 1;j<31;j++){
            if(C[i]==C[(i+j)%31]){
                la = j;
                break;
            }
        }
        for(int j = 0;j<la-1;j++){
            v[j][i] = 0;
        }
        v[la-1][i] = 1;
    }
    int it = 0;
    for(int i = 0;i<31;i++){
        int j = 0;
        while(v[j][i]==0){
            j++;
        }
        j++;
        for(;j<64;j++){
            if(it==M.size()){
                v[j][i] = !M.back();
            }else{
                v[j][i] = M[it++];
            }
        }
    }
    for(int i = 0;i<64;i++){
        send_packet(v[i]);
    }
}
std::vector<bool> receive_message(std::vector<std::vector<bool>> R){
    int nxt[31];
    for(int i = 0;i<31;i++){
        int j = 0;
        while(j<64&&R[i][j]==0)j++;
        j++;
        if(j<31){
            nxt[i] = (i+j)%31;
        }else{
            nxt[i] = -1;
        }
    }
    vector<int> ans;
    for(int i = 0;i<31;i++){
        int x = i;
        vector<int> v = {i};
        int sz = 1;
        while(nxt[x]!=i&&sz<40){
            if(nxt[x]==-1){
                sz = 40;
            }
            x = nxt[x];
            v.push_back(x);
            sz++;
        }
        if(sz==16){
            ans = v;
        }
    }
    sort(ans.begin(),ans.end());
    vector<bool> M;
    for(auto i:ans){
        int j = 0;
        while(R[j][i]==0)j++;
        j++;
        for(;j<64;j++){
            M.push_back(R[j][i]);
        }
    }
    bool v = M.back();
    while(M.back()==v)M.pop_back();
    return M;
}

Compilation message

message.cpp: In function 'void send_message(std::vector<bool>, std::vector<bool>)':
message.cpp:30:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<bool>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |             if(it==M.size()){
      |                ~~^~~~~~~~~~
message.cpp:38:9: error: 'send_packet' was not declared in this scope
   38 |         send_packet(v[i]);
      |         ^~~~~~~~~~~