QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#689841 | #9255. Python Program | YipChip | RE | 4ms | 3680kb | C++11 | 7.0kb | 2024-10-30 18:54:43 | 2024-10-30 18:54:45 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N = 210;
typedef long long 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";
unsigned long long 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;
}
}
cout << ans << '\n';
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3568kb
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: 3628kb
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: 4ms
memory: 3680kb
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)