제출 #313398

#제출 시각아이디문제언어결과실행 시간메모리
313398ly20Broken Device (JOI17_broken_device)C++17
41 / 100
50 ms3072 KiB
#include "Annalib.h"

void Anna( int N, long long X, int K, int P[] ){
    bool rs[200], marc[200];
    int n = N, k = K;
    for(int i = 0; i < n; i++) {
        rs[i] = 0;
        marc[i] = 0;
    }
    for(int i = 0; i < k; i++) {
        marc[P[i]] = 1;
    }
    long long pot = 59;
    for(int i = 0; i < n - 1; i++) {
        if(pot < 0) break;
        if(marc[i] == 0 && marc[i + 1] == 0) {
            rs[i] = 1;
            if((1LL << pot) & X) rs[i + 1] = 1;
            else rs[i + 1] = 0;
            i++;
            pot--;
        }
        else {
            if(marc[i] == 0 && (1LL << pot) & X == 0) {
                rs[i] = 1;
                i++;
                pot--;
            }
        }
    }
    for( int i = 0; i < N; i++ ){
        Set( i, rs[i] );
    }
}
#include "Brunolib.h"

long long Bruno( int N, int A[] ){
  long long  pot = 59;
  long long resp = 0;
  for(int i = 0; i < N - 1; i++) {
    if(pot < 0) break;
    if(A[i] == 1) {
        resp += ((long long) A[i + 1] << pot);
        i++;
        pot--;
    }
  }

  return resp;
}

컴파일 시 표준 에러 (stderr) 메시지

Anna.cpp: In function 'void Anna(int, long long int, int, int*)':
Anna.cpp:24:49: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   24 |             if(marc[i] == 0 && (1LL << pot) & X == 0) {
      |                                               ~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...