結果
問題 | No.294 SuperFizzBuzz |
ユーザー | koyopro |
提出日時 | 2015-10-24 01:58:22 |
言語 | Python2 (2.7.18) |
結果 |
TLE
|
実行時間 | - |
コード長 | 762 bytes |
コンパイル時間 | 377 ms |
コンパイル使用メモリ | 7,204 KB |
実行使用メモリ | 13,088 KB |
最終ジャッジ日時 | 2024-09-13 04:36:36 |
合計ジャッジ時間 | 6,761 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 11 ms
6,812 KB |
testcase_01 | AC | 11 ms
6,940 KB |
testcase_02 | TLE | - |
testcase_03 | -- | - |
testcase_04 | -- | - |
testcase_05 | -- | - |
testcase_06 | -- | - |
testcase_07 | -- | - |
testcase_08 | -- | - |
testcase_09 | -- | - |
testcase_10 | -- | - |
testcase_11 | -- | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
ソースコード
# -*- coding: utf-8 -*- N, = map(int, raw_input().split()) fact = [1, 1] for i in xrange(2, 30): fact.append(i * fact[i-1]); def comb(n, j): return fact[n] / fact[n-j] / fact[j]; num = 0 ans = 0 for k in xrange(3, 25): add = 0 for j in xrange(k / 3): add += comb(k-1, 2 + 3 * j) if num + add >= N: keta = k break; num += add #print k, add, num #print k for i in xrange((1<<k)+1, 1<<26, 2): #print bin(i) if bin(i).count("1") % 3 == 1: num += 1 #print num, i if num == N: ans = i break print bin(ans).replace("1", "5").replace("0", "3")[3:] # 3桁: 2C2 -> 1 # 4桁: 3C2 -> 3 # 5桁: 4C2 # 6桁: 5C2 + 5C5 # 15桁: 14C2 + 14C5 + 14C8 + 14C11 + 14C14