結果

問題 No.10 +か×か
ユーザー bionesbiones
提出日時 2015-09-15 16:08:08
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 392 ms / 5,000 ms
コード長 991 bytes
コンパイル時間 309 ms
コンパイル使用メモリ 82,048 KB
実行使用メモリ 116,864 KB
最終ジャッジ日時 2024-12-14 15:31:25
合計ジャッジ時間 2,253 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 45 ms
51,968 KB
testcase_01 AC 43 ms
52,096 KB
testcase_02 AC 41 ms
51,968 KB
testcase_03 AC 278 ms
115,968 KB
testcase_04 AC 150 ms
102,400 KB
testcase_05 AC 41 ms
52,096 KB
testcase_06 AC 392 ms
116,864 KB
testcase_07 AC 193 ms
102,656 KB
testcase_08 AC 118 ms
83,840 KB
testcase_09 AC 114 ms
90,240 KB
testcase_10 AC 43 ms
57,216 KB
testcase_11 AC 43 ms
56,832 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

def f(k):
    global nums,sum,flags,dp

    if sum>total:
        return False

    if sum==total and len(flags)==(N-1):
        s=""
        for fl in flags:
            s+=fl

        print(s)
        exit()

    if k>=N-1:
        return


    '''
    print(dp)
    print(sum)
    input()
    '''
    if dp[k][sum]==False:

        #dp[k].append(sum)
        dp[k][sum]=True
        sum+=nums[k+1]
        flags.append("+")
        f(k+1)
        flags.pop()
        sum-=nums[k+1]

        hoge=sum
        sum=sum*nums[k+1]
        flags.append("*")
        f(k+1)
        flags.pop()
        sum=hoge

    #print(flags)


'''
N=4
total=31
nums=list(map(int,"1 2 10 1".split(" ")))
'''

N=int(input())
total=int(input())
nums=list(map(int,input().split(" ")))

flags=[]
dp=[[False for j in range(total+1)]for i in range(N+1)]
'''
import numpy as np
asum=[0]*N
aprod=[0]*N
for i in range(len(nums)):
    asum[i]=np.sum(nums[i::])
    aprod[i]=np.product(nums[i::])

'''
sum=nums[0]
f(0)
0