QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#550573#9255. Python Programucup-team3659#AC ✓4ms4108kbC++141.3kb2024-09-07 13:29:092024-09-07 13:29:12

Judging History

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

  • [2024-09-07 13:29:12]
  • 评测
  • 测评结果:AC
  • 用时:4ms
  • 内存:4108kb
  • [2024-09-07 13:29:09]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

vector<string> split(string s,char c){
    vector<string> ret;
    ret.push_back("");
    for(char i :s)
        if(i==c)ret.push_back("");
        else ret.back()+=i;
    return ret;
}

int parseInt(string s){
    int flag=1,ret=0;
    for(char i :s){
        if(i=='-')flag=-1;
        else ret=ret*10+i-'0';
    }
    return ret*flag;
}

struct Loop{
    int l,r,delta;
};
Loop parseLoop(string s,char c){
    vector<string> params=split(split(split(s,'(')[1],')')[0],',');
    Loop ret;
    ret.l=params[0][0]==c?0:parseInt(params[0]);
    ret.r=parseInt(params[1]);
    ret.delta=(int)params.size()==2?1:parseInt(params[2]);
    return ret;
}

int main(){
    string line[5];
    for(int i=0;i<5;i++)getline(cin,line[i]);
    char namei=split(line[1],' ')[1][0];
    Loop x=parseLoop(line[1],' '),y=parseLoop(line[2],namei);
    long long answer=0;
    for(int i=x.l;x.delta>0?(i<x.r):(i>x.r);i+=x.delta){
        Loop c=y;
        if(!c.l)c.l=i;
        if(!c.r)c.r=i;
        if(!c.delta)c.delta=i;
        int cnt=c.delta>0
            ?(max(c.r-c.l,0)+c.delta-1)/c.delta
            :(max(c.l-c.r,0)-c.delta-1)/-c.delta;
        answer+=(c.l+c.l+(cnt-1ll)*c.delta)*cnt/2;
    }
    printf("%lld\n",answer);
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3824kb

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: 0ms
memory: 3800kb

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: 0
Accepted
time: 3ms
memory: 3684kb

input:

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

output:

166666666665500001

result:

ok single line: '166666666665500001'

Test #4:

score: 0
Accepted
time: 1ms
memory: 3804kb

input:

ans=0
for i in range(31,321983,2):
    for j in range(313,382193):
        ans+=j
print(ans)

output:

11756963404587200

result:

ok single line: '11756963404587200'

Test #5:

score: 0
Accepted
time: 4ms
memory: 4108kb

input:

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

output:

160610445975856765

result:

ok single line: '160610445975856765'

Extra Test:

score: 0
Extra Test Passed