제출 #696504

#제출 시각아이디문제언어결과실행 시간메모리
696504pls33Parrots (IOI11_parrots)C++17
98 / 100
8 ms1368 KiB
#include <bits/stdc++.h>
using namespace std;

//??????????????????????????
#ifndef _AAAAAAAAA
#include "encoder.h"
#include "encoderlib.h"
#else
void decode(int N, int L, int X[]);
void encode(int N, int M[]);
void output(int b);
void send(int a);
#endif
#pragma region dalykai
using p32 = pair<int, int>;
using p32u = pair<uint32_t, uint32_t>;
using p64 = pair<int64_t, int64_t>;
using p64u = pair<uint64_t, uint64_t>;
using vi16 = vector<int16_t>;
using vi16u = vector<uint16_t>;
using vi32 = vector<int>;
using vi32u = vector<uint32_t>;
using vi64 = vector<int64_t>;
using vi64u = vector<uint64_t>;
using vp32 = vector<p32>;
using vp32u = vector<p32u>;
using vp64 = vector<p64>;
using vp64u = vector<p64u>;
using vvi32 = vector<vi32>;
using vvi32u = vector<vi32u>;
using vvi64 = vector<vi64>;
using vvi64u = vector<vi64u>;
using vvp32 = vector<vp32>;
using vvp32u = vector<vp32u>;
using vvp64 = vector<vp64>;
using vvp64u = vector<vp64u>;
#pragma endregion
using _bit = bitset<512>;

// miau
const _bit noise("00111000101110000001100001001100110011011000111111110111011010011011010000010100010010001100101010011110111001000101111111100001101011100110001101101001111010001001111010101100001111011100100010000101100110100111110110100110101101010010000010111100010000010001011101000100110011110110110000000010000011110100101100110000000110011100010011000111100001101011001100111001100010100111000100010101010100000101110011110101000011001110110111110011011110011010011101101001101010110001111101001111011100011011101000001101");

void encode(int N, int M[])
{
    _bit a;
    for (int i = 0; i < N; i++)
    {
        a |= M[i];
        if (i < N - 1)
        {
            a <<= 8;
        }
    }

    for (int i = 0; i < min(512, 8 * N); i++)
    {
        a[i] = a[i] ^ noise[i];
    }

    for (int i = 0; i < 256; i++)
    {
        int count = a[i];
        count |= (int)a[i + 256] << 1;

        for (int j = 0; j < count; j++)
        {
            send(i);
        }
    }
}
#include <bits/stdc++.h>
using namespace std;

//??????????????????????????
#ifndef _AAAAAAAAA
#include "decoder.h"
#include "decoderlib.h"
#else
void decode(int N, int L, int X[]);
void encode(int N, int M[]);
void output(int b);
void send(int a);
#endif
#pragma region dalykai
using p32 = pair<int, int>;
using p32u = pair<uint32_t, uint32_t>;
using p64 = pair<int64_t, int64_t>;
using p64u = pair<uint64_t, uint64_t>;
using vi16 = vector<int16_t>;
using vi16u = vector<uint16_t>;
using vi32 = vector<int>;
using vi32u = vector<uint32_t>;
using vi64 = vector<int64_t>;
using vi64u = vector<uint64_t>;
using vp32 = vector<p32>;
using vp32u = vector<p32u>;
using vp64 = vector<p64>;
using vp64u = vector<p64u>;
using vvi32 = vector<vi32>;
using vvi32u = vector<vi32u>;
using vvi64 = vector<vi64>;
using vvi64u = vector<vi64u>;
using vvp32 = vector<vp32>;
using vvp32u = vector<vp32u>;
using vvp64 = vector<vp64>;
using vvp64u = vector<vp64u>;
#pragma endregion
using _bit = bitset<512>;

// uaim
const _bit noise("00111000101110000001100001001100110011011000111111110111011010011011010000010100010010001100101010011110111001000101111111100001101011100110001101101001111010001001111010101100001111011100100010000101100110100111110110100110101101010010000010111100010000010001011101000100110011110110110000000010000011110100101100110000000110011100010011000111100001101011001100111001100010100111000100010101010100000101110011110101000011001110110111110011011110011010011101101001101010110001111101001111011100011011101000001101");
void decode(int N, int L, int X[])
{
    _bit a;
    vi16 count(256);

    for (int i = 0; i < L; i++)
    {
        count[X[i]]++;
    }

    for (int i = 0; i < 256; i++)
    {
        a[i] = bool(count[i] & 1) ^ noise[i];
        a[i + 256] = bool(count[i] & 2) ^ noise[i + 256];
    }

    vi32 things_a;
    for (int i = 0; i < N; i++)
    {
        int val = 0;
        for (int j = 0; j < 8; j++)
        {
            val |= a[j] << j;
        }
        things_a.push_back(val);
        a >>= 8;
    }

    for (int i = (int)things_a.size() - 1; i >= 0; i--)
    {
        output(things_a[i]);
    }
}

컴파일 시 표준 에러 (stderr) 메시지

encoder.cpp:14: warning: ignoring '#pragma region dalykai' [-Wunknown-pragmas]
   14 | #pragma region dalykai
      | 
encoder.cpp:37: warning: ignoring '#pragma endregion ' [-Wunknown-pragmas]
   37 | #pragma endregion
      | 

decoder.cpp:14: warning: ignoring '#pragma region dalykai' [-Wunknown-pragmas]
   14 | #pragma region dalykai
      | 
decoder.cpp:37: warning: ignoring '#pragma endregion ' [-Wunknown-pragmas]
   37 | #pragma endregion
      |
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...