結果
| 問題 |
No.1701 half price
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-10-19 22:11:30 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,646 ms / 3,000 ms |
| コード長 | 566 bytes |
| コンパイル時間 | 141 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 76,852 KB |
| 最終ジャッジ日時 | 2024-09-20 06:26:51 |
| 合計ジャッジ時間 | 7,244 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 20 |
ソースコード
def base10to(n, b):
if (int(n/b)):
return base10to(int(n/b), b) + str(n%b)
return str(n%b)
N, W = map(int, input().split())
a = list(map(int, input().split()))
answer = set([])
for n in range(3**N):
flag_str = base10to(n, 3).rjust(N, '0')
flag_str
sum, key = 0, 0
for i, flag in enumerate(flag_str):
if flag == '1':
sum += a[i]
key += (1 << i)
elif flag == '2':
sum += a[i] // 2
key += (1 << i)
if sum == W:
answer.add(key)
print(len(answer) - (W == 0))