結果
| 問題 | 
                            No.333 門松列を数え上げ
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2016-01-15 00:45:52 | 
| 言語 | Go  (1.23.4)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 342 bytes | 
| コンパイル時間 | 10,607 ms | 
| コンパイル使用メモリ | 221,716 KB | 
| 実行使用メモリ | 6,820 KB | 
| 最終ジャッジ日時 | 2024-10-10 20:32:49 | 
| 合計ジャッジ時間 | 11,166 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 4 WA * 3 | 
ソースコード
package main
import "fmt"
func main() {
	var a, b int
	fmt.Scanf("%d %d", &a, &b)
	if a < b {
		fmt.Println(b - 2)
	}else {
		fmt.Println(2 * pow(10, 9) - 2)
	}
}
//aのb乗をします O(log b)
func pow(a int, b int) int {
	total := 1
	tmp := a
	for b > 0 {
		if b % 2 == 1 {
			total *= tmp
		}
		b /= 2
		tmp *= tmp
	}
	return total
}