# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
709235 | ssense | Unscrambling a Messy Bug (IOI16_messy) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}
void restore_permutation(int n, int w, int r, int* ans)
{
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 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++;
}
}
/*
int32_t main(){
startt
int t = 1;
//cin >> t;
while (t--) {
solve();
}
}
*/