# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
973156 | 2024-05-01T14:51:57 Z | sleepntsheep | 질문 (CEOI14_question_grader) | C | 0 ms | 0 KB |
#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))); }