#include <stdio.h>
int set[925], iota;
void init()
{
for (int iota = 0, i = 1; i < (1<<12); ++i)
if(__builtin_popcount(i) == 6)
{
++iota;
for(int j=0;j<12;++j)set[iota] |= ((i>>j)&1)<<j;
}
}
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;
}
int decode (int n, int q, int h)
{
if (!iota) init();
return(set[q]&(1<<(h-1)));
}
#include <stdio.h>
int set[925], iota;
void init()
{
for (int iota = 0, i = 1; i < (1<<12); ++i)
if(__builtin_popcount(i) == 6)
{
++iota;
for(int j=0;j<12;++j)set[iota] |= ((i>>j)&1)<<j;
}
}
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;
}
int decode (int n, int q, int h)
{
if (!iota) init();
return(set[q]&(1<<(h-1)));
}
Compilation message
encoder.c: In function 'encode':
encoder.c:21:1: warning: control reaches end of non-void function [-Wreturn-type]
21 | }
| ^
decoder.c: In function 'encode':
decoder.c:21:1: warning: control reaches end of non-void function [-Wreturn-type]
21 | }
| ^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
7067 ms |
9736 KB |
Time limit exceeded |
2 |
Execution timed out |
7059 ms |
9740 KB |
Time limit exceeded |