QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#49020 | #2281. BnPC | Tice | TL | 38ms | 8452kb | Python3 | 1.6kb | 2022-09-19 05:17:55 | 2022-09-19 05:17:56 |
Judging History
answer
def totalPoints(): # calculate total points
total = 0
if len(events) > 0:
for x in range(len(events)):
if attributes[events[x]["name"]] > events[x]["points"]:
total += attributes[events[x]["name"]]
return total
line = input().split(" ")
attrAmount = int(line[0])
points = int(line[1])
attributes = {}
for i in range(attrAmount):
new = input().split(" ")
attributes[new[0]] = int(new[1])
amountOfEvents = int(input())
events = []
highestEvents = {}
for i in range(amountOfEvents):
new = input().split(" ")
if new[0] not in highestEvents or int(new[1]) > highestEvents[new[0]]:
highestEvents[new[0]] = int(new[1])
events.append({
"name": new[0],
"points": int(new[1])
})
pointsNeeded = 0
for currentAttr in attributes:
pointsNeeded += highestEvents[currentAttr] - attributes[currentAttr]
if pointsNeeded > points: # check if we have enough points to pass
print(0)
exit(0)
for currentAttr in attributes: # assign enough point to every attribute to pass
diff = highestEvents[currentAttr] - attributes[currentAttr]
if diff > 0:
attributes[currentAttr] += diff
points -= diff
for i in range(points):
attributesBackUp = attributes.copy()
attributesResult = {}
for currentAttr in attributes:
attributes[currentAttr] += 1
attributesResult[currentAttr] = totalPoints()
attributes = attributesBackUp.copy()
best = max(attributesResult, key=attributesResult.get)
attributes[best] += 1
print(totalPoints())
详细
Test #1:
score: 100
Accepted
time: 16ms
memory: 8268kb
input:
3 14 THISISTHEONE 8 B 0 C 0 8 THISISTHEONE 10 C 0 B 1 B 0 THISISTHEONE 0 C 1 THISISTHEONE 0 THISISTHEONE 0
output:
82
result:
ok single line: '82'
Test #2:
score: 0
Accepted
time: 11ms
memory: 8328kb
input:
3 99 THEFIRSTINCREASE 6 SECONDINCREASE 4 ZZZ 1 9 THEFIRSTINCREASE 4 ZZZ 0 THEFIRSTINCREASE 6 SECONDINCREASE 8 THEFIRSTINCREASE 2 SECONDINCREASE 1 ZZZ 0 SECONDINCREASE 8 THEFIRSTINCREASE 3
output:
429
result:
ok single line: '429'
Test #3:
score: 0
Accepted
time: 38ms
memory: 8452kb
input:
5 20 A 100 B 200 C 300 D 400 E 500 949 A 39 A 23 C 163 A 98 B 36 A 3 A 52 B 152 B 167 B 65 C 142 B 66 B 117 C 288 C 155 E 341 A 97 D 173 E 31 A 62 D 90 E 361 A 42 D 85 E 1 C 141 B 77 B 194 D 221 E 203 D 345 E 48 B 26 D 46 B 74 E 380 B 181 C 243 B 112 A 99 E 403 C 20 E 453 C 149 B 26 E 245 A 74 D 304...
output:
285180
result:
ok single line: '285180'
Test #4:
score: 0
Accepted
time: 26ms
memory: 8312kb
input:
2 1 A 10 B 12 3 A 10 B 10 B 10
output:
35
result:
ok single line: '35'
Test #5:
score: 0
Accepted
time: 12ms
memory: 8328kb
input:
1 1 OVERENTHUSIASTICNESS 41 1 OVERENTHUSIASTICNESS 0
output:
42
result:
ok single line: '42'
Test #6:
score: -100
Time Limit Exceeded
input:
100000 1000000000 A 1000000000 B 1000000000 C 1000000000 D 1000000000 E 1000000000 F 1000000000 G 1000000000 H 1000000000 I 1000000000 J 1000000000 K 1000000000 L 1000000000 M 1000000000 N 1000000000 O 1000000000 P 1000000000 Q 1000000000 R 1000000000 S 1000000000 T 1000000000 U 1000000000 V 1000000...