QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#689832#9255. Python ProgramYipChipRE 7ms3596kbC++117.0kb2024-10-30 18:52:202024-10-30 18:52:21

Judging History

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

  • [2024-10-30 18:52:21]
  • 评测
  • 测评结果:RE
  • 用时:7ms
  • 内存:3596kb
  • [2024-10-30 18:52:20]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int N = 210;
typedef __int128 ll;
string line1, line2, line3, line4, line5;
char value1[N], value2[N];
ll a, b, c, d, e, f;

int main()
{
    getline(cin, line1);
    getline(cin, line2);
    getline(cin, line3);
    getline(cin, line4);
    getline(cin, line5);
    for (int i = 0, space = 0; i < line2.length(); i ++ )
    {
        if (line2[i] == ' ' && !space)
        {
            int n = 0;
            space ++ ;
            i ++ ;
            while (line2[i] != ' ') value1[n ++ ] = line2[i], i ++ ;
        }
        if (line2[i] == '(')
        {
            i ++ ;
            int pd = 0;
            if (line2[i] == '-') pd = 1, i ++ ;
            while (line2[i] != ',')
            {
                a = a * 10 + line2[i] - '0';
                i ++ ;
            }
            if (pd) a = -a;
            i ++ ;
            pd = 0;
            if (line2[i] == '-') pd = 1, i ++ ;
            while (line2[i] != ',' && line2[i] != ')')
            {
                b = b * 10 + line2[i] - '0';
                i ++ ;
            }
            if (pd) b = -b;
            if (line2[i] == ')')
            {
                c = 1;
                break;
            }
            else
            {
                i ++ ;
                pd = 0;
                if (line2[i] == '-') pd = 1, i ++ ;
                while (line2[i] != ')') c = c * 10 + line2[i] - '0', i ++ ;
                if (pd) c = -c;
                break;
            }
        }
    }

    int cases = 0;
    for (int i = 4, space = 0; i < line3.length(); i ++ )
    {
        if (line3[i] == ' ' && !space)
        {
            int n = 0;
            space ++ ;
            i ++ ;
            while (line3[i] != ' ') value2[n ++ ] = line3[i], i ++ ;
        }
        if (line3[i] == '(')
        {
            i ++ ;
            int pd = 0;
            if (line3[i] != '-' && (line3[i] < '0' || line3[i] > '9'))
            {
                cases = 1;
                while (line3[i] != ',') i ++ ;
                i ++ ;
            }
            else
            {
                if (line3[i] == '-') pd = 1, i ++ ;
                while (line3[i] != ',' && line3[i] != ')') d = d * 10 + line3[i] - '0', i ++ ;
                if (pd) d = -d;
                i ++ ;
            }
            pd = 0;
            if (line3[i] != '-' && (line3[i] < '0' || line3[i] > '9'))
            {
                cases = 2;
                while (line3[i] != ',') i ++ ;
                i ++ ;
            }
            else
            {
                if (line3[i] == '-') pd = 1, i ++ ;
                while (line3[i] != ',') e = e * 10 + line3[i] - '0', i ++ ;
                if (pd) e = -e;
                i ++ ;
            }
            if (line3[i] == ')')
            {
                f = 1;
                break;
            }
            else
            {
                pd = 0;
                if (line3[i] != '-' && (line3[i] < '0' || line3[i] > '9'))
                {
                    cases = 3;
                    while (line3[i] != ',') i ++ ;
                }
                else
                {
                    if (line3[i] == '-') pd = 1, i ++ ;
                    while (line3[i] != ')') f = f * 10 + line3[i] - '0', i ++ ;
                    if (pd) f = -f;
                    i ++ ;
                }
                break;
            }
        }
    }
    // a, b, c, d, e, f
    // for (i = a, i < b, i += c)
    //     for (j = d, j < e, j += f)
    //          ans += j
    // cout << a << ' ' << b << ' ' << c << ' ' << d << ' ' << e << ' ' << f << "\n";
    ll ans = 0;
    // const
    if (cases == 0)
    {
        ll times;
        if (f > 0)
        {
            ll times = (e - d - 1) / f + 1;
            e = d + (times - 1) * f;
        }
        else
        {
            swap(d, e), f = -f;
            times = (e - d - 1) / f + 1;
            d = e - (times - 1) * f;
        }
        if (c > 0)
        {
            ll times = (b - a - 1) / c + 1;
            b = a + (times - 1) * c;
        }
        else
        {
            swap(a, b), c = -c;
            times = (b - a - 1) / c + 1;
            a = b - (times - 1) * c;
        }
        for (int i = a; i <= b; i += c)
            ans += (d + e) * times / 2;
    }
    // d = i
    if (cases == 1)
    {
        ll times, tmp = e, tmp2 = f;
        if (c > 0)
        {
            ll times = (b - a - 1) / c + 1;
            b = a + (times - 1) * c;
        }
        else
        {
            swap(a, b), c = -c;
            times = (b - a - 1) / c + 1;
            a = b - (times - 1) * c;
        }
        for (int i = a; i <= b; i += c)
        {
            d = i, e = tmp, f = tmp2;
            if (f > 0)
            {
                if (d >= e) continue;
            }
            else
            {
                if (e >= d) continue;
            }
            if (f > 0)
            {
                times = (e - d - 1) / f + 1;
                e = d + (times - 1) * f;
            }
            else
            {
                swap(d, e), f = -f;
                times = (e - d - 1) / f + 1;
                d = e - (times - 1) * f;
            }
            ans += (d + e) * times / 2;
        }
    }
    // e = i
    if (cases == 2)
    {
        ll times, tmp = d, tmp2 = f;
        if (c > 0)
        {
            ll times = (b - a - 1) / c + 1;
            b = a + (times - 1) * c;
        }
        else
        {
            swap(a, b), c = -c;
            times = (b - a - 1) / c + 1;
            a = b - (times - 1) * c;
        }
        for (int i = a; i <= b; i += c)
        {
            f = tmp2;
            d = tmp, e = i;
            if (f > 0)
            {
                times = (e - d - 1) / f + 1;
                e = d + (times - 1) * f;
            }
            else
            {
                swap(d, e), f = -f;
                times = (e - d - 1) / f + 1;
                d = e - (times - 1) * f;
            }
            ans += (d + e) * times / 2;
        }
    }
    // f = i
    if (cases == 3)
    {
        ll times;
        if (c > 0)
        {
            ll times = (b - a - 1) / c + 1;
            b = a + (times - 1) * c;
        }
        else
        {
            swap(a, b), c = -c;
            times = (b - a - 1) / c + 1;
            a = b - (times - 1) * c;
        }
        for (int i = a; i <= b; i += c)
        {
            f = i;
            if (f > 0)
            {
                times = (e - d - 1) / f + 1;
                e = d + (times - 1) * f;
            }
            else
            {
                swap(d, e), f = -f;
                times = (e - d - 1) / f + 1;
                d = e - (times - 1) * f;
            }
            ans += (d + e) * times / 2;
        }
    }
    if (ans < 0) cout << (long long) ans << '\n';
    else cout << (unsigned long long) ans << '\n';
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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

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

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: -100
Runtime Error

input:

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

output:


result: