제출 #1363743

#제출 시각아이디문제언어결과실행 시간메모리
1363743solution6312Broken Device 2 (JOI22_device2)C++17
80 / 100
327 ms2900 KiB
#include "Anna.h"
#include <iostream>
#include <vector>
#include <cassert>
#include <algorithm>
using namespace std;
using ll=long long;

namespace encode
{
    int Declare() { return 180; }
    pair<vector<int>, vector<int>> Anna(ll A)
    {
        vector<int> S, T;
        for (int i=0; i<60; i++)
        {
            S.push_back((A>>i)&1);
            S.push_back((A>>i)&1);
            S.push_back((A>>i)&1);
        }
        for (int i=0; i<90; i++)
        {
            T.push_back(1);
            T.push_back(0);
        }
        for (int i:S) cerr<<i; cerr<<endl;
        for (int i:T) cerr<<i; cerr<<endl;
        return {S, T};
    }
}
int Declare() { return encode::Declare(); }
pair<vector<int>, vector<int>> Anna(ll A) { return encode::Anna(A); }
#include "Bruno.h"
#include <iostream>
#include <vector>
#include <cassert>
#include <algorithm>
using namespace std;
using ll=long long;

namespace decode
{
    ll Bruno(vector<int> V)
    {
        vector<int> rep; rep.clear();
        int cur=0;
        assert(V.size()==360);
        vector<int> ext={0};
        for (int i=0; i<360; i++)
        {
            cerr<<V[i];
            if (V[i]) cur++;
            else cur--;
            int k;
            if (cur>=0) k=cur/3;
            else k=(cur+2)/3-1;
            if ((cur==k*3 || cur==k*3+1) && k!=ext.back()) ext.push_back(k);
        } cerr<<endl;
        ll ans=0;
        assert(ext.size()==61);
        for (int i=0; i<60; i++) if (ext[i+1]>ext[i]) ans^=(1ll<<i);
        return ans;
    }
}
ll Bruno(vector<int> u) { return decode::Bruno(u); }
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…