QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#636675#9255. Python ProgrammaspyTL 10ms10588kbPython3659b2024-10-13 01:48:202024-10-13 01:48:20

Judging History

你现在查看的是最新测评结果

  • [2024-10-13 01:48:20]
  • 评测
  • 测评结果:TL
  • 用时:10ms
  • 内存:10588kb
  • [2024-10-13 01:48:20]
  • 提交

answer

txt = [input() for _ in range(5)]

def find(X):
    p=X.find("range")
    X=X[p+5:][1:-2]
    return X.split(",")
    
A=find(txt[1])
B=find(txt[2])

if len(A)==2:
    A.append(1)
if len(B)==2:
    B.append(1)

ANS = 0
a,b,c=map(int,A)

for x in range(a,b,c):
    def f(s):
        if s.lstrip('-').isdigit():
            return int(s)
        return x
    p,q,r=map(f,B)
    if r > 0:
        k = max(0, (q-1-p)//r+1)
        # for i in range(k):
        #     ANS += p+r*i
        ANS += p * k + r * k * (k-1) // 2
    else:
        r = -r
        k = max(0,(p-q-1)//r+1)
        ANS += p * k - r * k * (k-1) // 2
print(ANS)

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 10ms
memory: 10576kb

input:

ans=0
for a in range(1,3):
    for b in range(5,1,-2):
        ans+=b
print(ans)

output:

16

result:

ok single line: '16'

Test #2:

score: 0
Accepted
time: 10ms
memory: 10588kb

input:

ans=0
for q in range(100,50,-1):
    for i in range(q,77,20):
        ans+=i
print(ans)

output:

2092

result:

ok single line: '2092'

Test #3:

score: -100
Time Limit Exceeded

input:

ans=0
for i in range(1,1000000):
    for j in range(i,1,-1):
        ans+=j
print(ans)

output:

166666666665500001

result: