답안 #564844

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
564844 2022-05-19T19:24:43 Z Uzouf 질문 (CEOI14_question_grader) C++14
60 / 100
2926 ms 24228 KB
int encode(int n,int x,int y) {
  int h=-1;
        for (int p=0;p<=9;p++) {
          int a=((1<<p)&x),b=((1<<p)&y);
          if (a==(1<<p) && b!=(1<<p)) {
            h=p+1; break;
          }
        }

        if (h==-1) {
          int pa=__builtin_popcount(x),pb=__builtin_popcount(y);
          for (int p=0;p<=4;p++) {
            int a=((1<<p)&pa),b=((1<<p)&pb);
            if (a!=(1<<p) && b==(1<<p)) {
              h=11+p; break;
            }
          }
        }
  return h;
}
int decode(int n,int q,int h) {
  h--;
  if (h>=10) {
    h-=10;
    int k=__builtin_popcount(q);
    if (((1<<h)&k)!=(1<<h)) return 1;
    else return 0;
  }
  else {
    if (((1<<h)&q)!=(1<<h)) return 0;
    else return 1;
  }
}
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2894 ms 24032 KB Output is partially correct - maxh = 14
2 Partially correct 2926 ms 24228 KB Output is partially correct - maxh = 14