#include <stdio.h>
int set[925], iota;
void init()
{
for (int i = 1; i < (1<<12); ++i)
if(__builtin_popcount(i) == 6)
set[++iota] = i;
}
int encode(int n,int x,int y)
{
if (!iota) init();
for(int i=0;i<12;++i)
if((set[x]&(1<<i))&&!(set[y]&(1<<i)))
return i+1;
__builtin_trap();
}
int decode (int n, int q, int h)
{
if (!iota) init();
return(set[q]>>(h-1))&1;
}
#include <stdio.h>
int set[925], iota;
void init()
{
for (int i = 1; i < (1<<12); ++i)
if(__builtin_popcount(i) == 6)
set[++iota] = i;
}
int encode(int n,int x,int y)
{
if (!iota) init();
for(int i=0;i<12;++i)
if((set[x]&(1<<i))&&!(set[y]&(1<<i)))
return i+1;
__builtin_trap();
}
int decode (int n, int q, int h)
{
if (!iota) init();
return(set[q]>>(h-1))&1;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2727 ms |
24920 KB |
Output is correct - maxh = 12 |
2 |
Correct |
2767 ms |
24836 KB |
Output is correct - maxh = 12 |