Problemstellung:
Sachin mag Süßigkeiten viel. Also geht er auf einen Süßwarenmarkt. Es gibt eine Reihe von süßen Ständen. Jeder süße Stall hat verschiedene Süßigkeiten. Um etwas Zeit zu sparen, entschloss er sich, Süßigkeiten aus angrenzenden Ständen zu kaufen. Also kann er von so vielen Ständen kaufen, wie er will, aber alle diese Stände müssen zusammenhängend sein. Er entschied sich auch, nur 1 kg Süßigkeiten von jedem dieser Stände zu kaufen. Die Kosten für 1 kg Süßigkeiten für jeden Stand sind angegeben. Auf diesem Markt gibt es eine seltsame Abrechnungsregel. Und diese Regel ist wie folgt: Die Gesamtkosten aller gekauften Süßigkeiten sind die Summe der Kosten aller Süßigkeiten, multipliziert mit den Kosten für Süßigkeiten, die er am Ende gekauft hat. z.B. wenn er Süßigkeiten kauft, die 2, 3, 4 in der gleichen Reihenfolge als Gesamtkosten der Bonbons kosten, ist 2 * 4 + 3 * 4 + 4 * 4 = 36. Jetzt fragt er sich, wie hoch die Gesamtkosten aller möglichen Arten, Süßigkeiten zu kaufen, sein werden. Kannst du ihm helfen. Weil diese Zahl groß sein könnte, sollten Sie Modulo des Endergebnisses um 10^9 + 7 nehmen.
Beispiele
Beispieltestfall 1-Warum bekomme ich Fehler
Input
3
1
2
3
Output
53
Explanation
Possible ways of buying sweets are-
a) 1
b) 1 2
c) 2
d) 1 2 3
e) 2 3
f) 3
cost of each of these is following-
a) 1*1= 1
b) 1*2+2*2= 6
c) 2*2= 4
d) 1*3+2*3+3*3= 18
e) 2*3+3*3= 15
f) 3*3= 9
löste ich dieses Problem mit diesem Code, ich bin immer noch 0 in Konkurrenz bekommen :(
import sys
import os
def possibleways(input1):
t1 = []
s = 0
big_num = 10**9 + 7
for i in range(len(input1)):
for j in range(i + 1, len(input1) + 1):
l1 = []
for k in range(i, j):
l1.append(input1[k])
t1.append(l1)
# print(t1)
for x in t1:
last_element = x[-1]
# print("last_element", last_element)
s += (sum(x) * last_element) % big_num
# print(s)
return s % big_num
# return ts
ip1_cnt = 0
ip1_cnt = int(input())
ip1_i = 0
ip1 = []
while ip1_i < ip1_cnt:
ip1_item = int(input())
ip1.append(ip1_item)
ip1_i += 1
output = possibleways(ip1)
print(str(output))
Bitte mir helfen, den Fehler, ich bin zu finden tun
Ihre Subset-Konstruktion ist zu langsam und verbraucht immense Speichermengen. (Die Eingabe kann 100.000 Zahlen sein.) – molbdnilo
@molbdnilo Wie kann ich optimieren? Kannst du mich bitte führen? –