結果

問題 No.10 +か×か
ユーザー bionesbiones
提出日時 2015-09-15 16:08:08
言語 PyPy3
(7.3.13)
結果
AC  
実行時間 377 ms / 5,000 ms
コード長 991 bytes
コンパイル時間 1,292 ms
コンパイル使用メモリ 87,032 KB
実行使用メモリ 119,776 KB
最終ジャッジ日時 2023-08-21 06:14:07
合計ジャッジ時間 3,107 ms
ジャッジサーバーID
(参考情報)
judge12 / judge14
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 71 ms
71,544 KB
testcase_01 AC 70 ms
71,384 KB
testcase_02 AC 72 ms
71,676 KB
testcase_03 AC 276 ms
117,008 KB
testcase_04 AC 169 ms
104,128 KB
testcase_05 AC 71 ms
71,412 KB
testcase_06 AC 377 ms
119,776 KB
testcase_07 AC 209 ms
105,360 KB
testcase_08 AC 136 ms
85,772 KB
testcase_09 AC 132 ms
91,748 KB
testcase_10 AC 71 ms
75,196 KB
testcase_11 AC 72 ms
75,112 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