만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

POPCOUNT

시간 제한1초메모리 제한1024 MB

요약
N, A, B가 주어질 때 1부터 N까지 각 i에 대해 a+b=i인 a, b의 A×popcount(a)+B×popcount(b) 최댓값을 모두 더한 값을 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 비트 연산, 수학
정답자
아직 제출이 없습니다

문제

음이 아닌 정수 kk에 대해 popcount(k)\mathrm{popcount}(k)는 kk를 이진법으로 나타냈을 때 나타나는 1의 개수이다.

양의 정수 AA, BB, xx에 대해 f(x)f(x)를 다음과 같이 정의하자.

f(x)=max⁡a+b=x{A×popcount(a)+B×popcount(b)}f(x)=\max_{a+b=x}\{A\times \mathrm{popcount}(a) + B\times \mathrm{popcount}(b)\}

(aa, bb는 음이 아닌 정수)

정수 NN이 주어질 때, ∑i=1Nf(i)\sum_{i=1}^N f(i)의 값을 구하여라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤100001 \leq T \leq 10000)

다음 TT개의 줄에 테스트 케이스가 주어진다. 각 테스트 케이스에는 양의 정수 NN, AA, BB가 공백으로 구분되어 주어진다. (1≤N,A,B≤5000001 \leq N, A, B \leq 500000)

출력

각 테스트 케이스에 대해 정답을 한 줄에 하나씩 출력한다. 정답은 64비트 정수 범위를 넘지 않는다.

예제1

  1. 예제 1

    입력
    3
    2 5 5
    12 4 7
    10000 500000 500000
    
    예상 출력
    15
    244
    84131000000