QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#732504#9255. Python ProgramSHOJIG#AC ✓3ms3848kbC++204.3kb2024-11-10 14:54:322024-11-10 14:54:40

Judging History

This is the latest submission verdict.

  • [2024-11-10 14:54:40]
  • Judged
  • Verdict: AC
  • Time: 3ms
  • Memory: 3848kb
  • [2024-11-10 14:54:32]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
int k, p ,x;
string s[6];

vector<int> get(string str) {
    int sum = 0, i = 0, k = 0, f = 1;
    vector<int> v;
    while(i < str.length()) {
        sum = 0;
        while(isdigit(str[i])) {
            k = 1;
            sum = sum * 10 + str[i++] - '0';
        }
        if(k == 1) {
            v.push_back(sum * f);
            f = 1;
        }
        k = 0;
        while(!isdigit(str[i])){
            if(str[i] == '-') {
                f = -1;
            }
            if(str[i] == ',') {
                v.push_back(1e8);
            }
            i++;
        }
    }
    return v;
}

int calc(int d, int e, int f) {
    if(d<e&&f>0) return (((e-d-1)/f)*f+2*d)*((e-d-1)/f+1)/2;
    else if(d>e&&f<0) return (((e-d+1)/f)*f+2*d)*((e-d+1)/f+1)/2;
    return 0;
}
void solve() {
    for(int i = 1; i <= 5; i++) {
        getline(cin, s[i]);
    }
    int ans = 0;
    int l, r, step;
    vector<int> v, v2;
    v = get(s[2]);
    v2 = get(s[3]);
    if(v.size() == 3) {
        l = v[0];
        r = v[2];
        step = 1;
    }
    else {
        l = v[0];
        r = v[2];
        step = v[4];
    }
    int l1, r1, step1;
    // cout << l << " " << r << " " << step << endl;
    // cout << "--------" << endl;
    if(step < 0) {
        for(int i = l; i > r; i += step) {
            if(v2.size() == 5) {
                l1 = v2[0];
                r1 = v2[2];
                step1 = v2[4];
            }
            else if(v2.size() == 4) {
                if(v2[0] == 1e8) { // l1 = i;
                    l1 = i;
                    r1 = v2[1];
                    step1 = v2[3];
                }
                else if(v2[2] == 1e8) { // r1 = i;
                    l1 = v2[0];
                    r1 = i;
                    step1 = v2[3];
                }
                else {
                    l1 = v2[0];
                    r1 = v2[2];
                    step1 = i;
                }
            }
            else if(v2.size() == 2) {
                if(v2[0] == 1e8) {
                    l1 = i;
                    r1 = v2[1];
                    step1 = 1;
                }
                else {
                    l1 = v2[0];
                    r1 = i;
                    step1 = 1;
                }
            }
            else if(v2.size() == 3) {
                l1 = v2[0];
                r1 = v2[2];
                step1 = 1;
            }
            //cout << l1 << " " << r1 << " " << step1 << endl;
            ans += calc(l1, r1, step1);
        }
    }
    else {
        for(int i = l; i < r; i += step) {
            if(v2.size() == 5) {
                l1 = v2[0];
                r1 = v2[2];
                step1 = v2[4];
            }
            else if(v2.size() == 4) {
                if(v2[0] == 1e8) { // l1 = i;
                    l1 = i;
                    r1 = v2[1];
                    step1 = v2[3];
                }
                else if(v2[2] == 1e8) { // r1 = i;
                    l1 = v2[0];
                    r1 = i;
                    step1 = v2[3];
                }
                else {
                    l1 = v2[0];
                    r1 = v2[2];
                    step1 = i;
                }
            }
            else if(v2.size() == 2) {
                if(v2[0] == 1e8) {
                    l1 = i;
                    r1 = v2[1];
                    step1 = 1;
                }
                else {
                    l1 = v2[0];
                    r1 = i;
                    step1 = 1;
                }
            }
            else if(v2.size() == 3) {
                l1 = v2[0];
                r1 = v2[2];
                step1 = 1;
            }
            //cout << l1 << " " << r1 << " " << step1 << endl;
            ans += calc(l1, r1, step1);
        }
    }

    cout << ans << endl;
}
/*
ans=0
for a in range(1,3):
for b in range(5,1,-2):
ans+=b
print(ans)

ans=0
for q in range(100,50,-1):
for i in range(q,77,20):
ans+=i
print(ans)
*/
signed main() {
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int _ = 1;
    //cin >> _;
    while(_--) solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 3620kb

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: 3560kb

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: 3592kb

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: 3ms
memory: 3848kb

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