# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
709238 | ssense | Unscrambling a Messy Bug (IOI16_messy) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "messy.h"
#define startt ios_base::sync_with_stdio(false);cin.tie(0);
typedef long long ll;
using namespace std;
#define vint vector<int>
string convert(int x)
{
string now = "00000000";
for(int i = 0; i < 8; i++)
{
if(x&(1<<i))
{
now[i]++;
}
}
return now;
}
int[] restore_permutation(int n, int r, int w)
{
string now = "00000000";
for(int i = 0; i < 7; i++)
{
now[i]++;
add_element(now);
}
compile_set();
vector<vint> bits(8);
for(int i = 1; i <= 256; i++)
{
bits[__builtin_popcount(i)].push_back(i);
}
int ans[n];
int already = 0;
int idx = 0;
for(auto v : bits)
{
for(auto x : v)
{
if(check_element(convert(x)))
{
int acc = x-already;
ans[idx] = 31-__builtin_clz(acc);
already = x;
break;
}
}
idx++;
}
return ans;
}
/*
int32_t main(){
startt
int t = 1;
//cin >> t;
while (t--) {
solve();
}
}
*/