답안 #564838

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
564838 2022-05-19T18:59:17 Z Uzouf 질문 (CEOI14_question_grader) C++14
0 / 100
0 ms 416 KB
int encode(int n,int x,int y) {
    int a=x,b=y;
    for (int p=10;p>=0;p--) {
      int i=0,j=0;
      if ((1<<p)<=a) {
        a-=(1<<p); i=1;
      }
      if ((1<<p)<=b) {
        b-=(1<<p); j=1;
      }
      if (i>j) return p;
    }
  
  a=__builtin_popcount(x);
  b=__builtin_popcount(y);
  for (int p=5;p>=0;p--) {
      int i=0,j=0;
      if ((1<<p)<=a) {
        a-=(1<<p); i=1;
      }
      if ((1<<p)<=b) {
        b-=(1<<p); j=1;
      }
      if (i<j) return p+10;
    }
 }
int decode(int n,int q,int h) {
  if (h>10) {
    h-=10;
    int nm=__builtin_popcount(q);
    int k=nm;
    for (int p=5;p>=0;p--) {
      int i=0;
      if ((1<<p)<=k) {
        k-=(1<<p); i=1;
      }
      if (p==h) {
        if (i==1) return 1;
          else return 0;
      }
    }
  }
  else {
    int k=q;
    for (int p=10;p>=0;p--) {
      int i=0;
      if ((1<<p)<=k) {
        k-=(1<<p); i=1;
      }
      if (p==h) {
        if (i==0) return 1;
          else return 0;
      }
    }
  }
}

Compilation message

encoder.cpp: In function 'int encode(int, int, int)':
encoder.cpp:26:2: warning: control reaches end of non-void function [-Wreturn-type]
   26 |  }
      |  ^

decoder.cpp: In function 'int decode(int, int, int)':
decoder.cpp:30:1: warning: control reaches end of non-void function [-Wreturn-type]
   30 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 416 KB the encoded value must be greater than or equal to 1
2 Incorrect 0 ms 416 KB the encoded value must be greater than or equal to 1