QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#690584 | #9255. Python Program | YipChip | AC ✓ | 4ms | 3704kb | C++11 | 7.3kb | 2024-10-30 23:27:26 | 2024-10-30 23:27:26 |
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] != ',' && line3[i] != ')') i ++ ;
i ++ ;
}
else
{
if (line3[i] == '-') pd = 1, i ++ ;
while (line3[i] != ',' && line3[i] != ')') e = e * 10 + line3[i] - '0', i ++ ;
if (pd) e = -e;
}
if (line3[i] == ')')
{
f = 1;
break;
}
else
{
pd = 0;
i ++ ;
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 (c > 0)
{
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;
}
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;
}
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)
{
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)
{
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)
{
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;
}
}
// f = i
if (cases == 3)
{
ll times;
if (c > 0)
{
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;
}
/*
ans=0
for i in range(1,2,2):
for j in range(1,4):
ans+=j
print(ans)
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3704kb
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: 1ms
memory: 3624kb
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: 3568kb
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: 0ms
memory: 3688kb
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: 3632kb
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