結果
| 問題 | 
                            No.1929 Exponential Sequence
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2022-06-10 02:31:48 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 473 ms / 2,000 ms | 
| コード長 | 555 bytes | 
| コンパイル時間 | 279 ms | 
| コンパイル使用メモリ | 82,396 KB | 
| 実行使用メモリ | 133,672 KB | 
| 最終ジャッジ日時 | 2024-09-21 05:40:43 | 
| 合計ジャッジ時間 | 4,668 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 24 | 
ソースコード
from bisect import *
def dfs1(s, dep):
    if s>S:
        return
    
    if dep==n//2:
        l1.append(s)
        return
    
    for k in range(1, 31):
        dfs1(s+pow(a[dep], k), dep+1)
def dfs2(s, dep):
    if s>S:
        return
    
    if dep==n:
        l2.append(s)
        return
    
    for k in range(1, 31):
        dfs2(s+pow(a[dep], k), dep+1)
n, S = map(int, input().split())
a = list(map(int, input().split()))
l1, l2 = [], []
dfs1(0, 0)
dfs2(0, n//2)
l2.sort()
ans = 0
for v in l1:
    ans += bisect_right(l2, S-v)
print(ans)