Submission #1114093

#TimeUsernameProblemLanguageResultExecution timeMemory
1114093WansurBroken Device 2 (JOI22_device2)C++17
60 / 100
382 ms22052 KiB
#include "Anna.h"
#include <bits/stdc++.h>

using namespace std;

int lg = 60, k = 21;

int Declare() {
    return lg * (k + 1);
}

pair<vector<int>, vector<int>> Anna(long long x) {
    vector<int> a, b;
    a.push_back(1);
    vector<int> p(lg);
    for(int i = 0; i < lg; i++) {
        p[i] = i;
    }
    mt19937 rng(59493542);
    shuffle(p.begin(), p.end(), rng);
    for(int i : p) {
        int t = ((x >> i) & 1);
        for(int j = 0; j < k; j++){
            a.push_back(t);
        }
        a.push_back(1);
    }
    a.pop_back();
    while(b.size() < a.size()) {
        b.push_back(0);
    }
    return {a, b};
}
#include "Bruno.h"
#include <bits/stdc++.h>

typedef long long ll;
using namespace std;

int tk = 21;

long long Bruno(vector<int> u) {
    int n = (int) u.size();
    ll ans = 0, b = 0;
    vector<int> p(60);
    for(int i = 0; i < 60; i++) {
        p[i] = i;
    }
    mt19937 rng(59493542);
    shuffle(p.begin(), p.end(), rng);
    for(int i = 0; i + 1 < (int)u.size(); i++) {
        if(u[i] == 0) {
            continue;
        }
        int fg = 0;
        for(int j = i + 1; j <= i + tk; j++) {
            fg |= u[j];
        }
        if(fg) {
            ans |= (1ll << p[b]);
            int cnt = 0, j = i;
            while(cnt < tk) {
                j++;
                cnt += u[j];
            }
            i = j;
        }
        b++;
    }
    return ans;
}

Compilation message (stderr)

Bruno.cpp: In function 'long long int Bruno(std::vector<int>)':
Bruno.cpp:10:9: warning: unused variable 'n' [-Wunused-variable]
   10 |     int n = (int) u.size();
      |         ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...