結果
| 問題 |
No.220 世界のなんとか2
|
| コンテスト | |
| ユーザー |
しらっ亭
|
| 提出日時 | 2015-06-09 18:22:54 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 25 ms / 1,000 ms |
| コード長 | 840 bytes |
| コンパイル時間 | 73 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-07-06 15:13:08 |
| 合計ジャッジ時間 | 1,138 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 |
ソースコード
#! /usr/bin/env python3
C_MEMO = {}
def combination(n, r):
if n == r:
return 1
elif r == 0:
return 1
elif r == 1:
return n
elif (n, r) in C_MEMO:
return C_MEMO[n, r]
C_MEMO[n, r] = combination(n-1, r-1) + combination(n-1, r)
return C_MEMO[n, r]
def s1(p):
n = 0
for i in range(1, p + 1):
n += 3 * 10 ** (i - 1)
return n
def s2(p):
n = 0
for i in range(1, p + 1):
ni = 10 ** (p - i) * combination(p, i) * (-1) ** i
n -= ni
return n
def s3(p):
n = 0
for i in range(1, p + 1):
ni = (10 ** (p - i) // 3 + 1) * combination(p, i) * (-1) ** i
n -= ni
return n
def main():
p = int(input())
n1 = s1(p)
n2 = s2(p)
n3 = s3(p)
print(n1 + n2 - n3)
if __name__ == '__main__':
main()
しらっ亭