結果

問題 No.2939 Sigma Popcount Problem
ユーザー ID 21712
提出日時 2025-03-18 13:28:51
言語 Go
(1.23.4)
結果
AC  
実行時間 1,497 ms / 2,000 ms
コード長 464 bytes
コンパイル時間 12,581 ms
コンパイル使用メモリ 242,676 KB
実行使用メモリ 8,096 KB
最終ジャッジ日時 2025-03-18 13:29:18
合計ジャッジ時間 25,294 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 18
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import . "fmt"

func main() {
	b := make([]int64, 64)
	for i, s := 0, int64(0); i < 62; i++ {
		b[i] = s+1
		s += b[i]+(1<<i-1)
	}
	var c func(x int64) int64
	c = func(x int64) (s int64) {
		for i := 61; i >= 0; i-- {
			if (x&(1<<i)) != 0 {
				x -= (1<<i)
				s += b[i] + x
			}
		}
		return
	}
	var t int
	Scan(&t)
	for ; t>0; t-- {
		var n int64
		Scan(&n)
		Println(c(n))
	}
}

// 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111
0