QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#729725 | #9255. Python Program | Whxxxxx318# | WA | 56ms | 3808kb | C++17 | 3.9kb | 2024-11-09 17:41:43 | 2024-11-09 17:41:44 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
int read(string &s)
{
int x = 0, f = 1;
int i = 0;
while (i < s.size() && !isdigit(s[i]))
{
if (s[i] == '-')
f = -f;
i++;
}
while (i < s.size() && isdigit(s[i]))
{
x = x * 10 + s[i] - '0';
s[i] = '*';
i++;
}
return x * f;
}
void solve()
{
int a, b, c = 1, d = 0, e = 0, f = 0;
int ans = 0;
string s;
getline(cin, s);
getline(cin, s);
a = read(s);
b = read(s);
c = read(s);
if (c == 0)
c = 1;
// cout << a << " " << b << " " << c;
getline(cin, s);
int pos = s.find('(') + 1;
if (!isdigit(s[pos]) && !isdigit(s[pos + 1]))
d = -1e18;
pos = s.find(',') + 1;
if (!isdigit(s[pos]) && !isdigit(s[pos + 1]))
e = -1e18;
s[pos - 1] = '*';
pos = s.find(')') - 1;
if (!isdigit(s[pos]))
f = -1e18;
if (d != -1e18)
d = read(s);
if (e != -1e18)
e = read(s);
if (f != -1e18)
f = read(s);
if (c > 0)
{
for (int i = a; i < b; i += c)
{
int dd = d, ee = e, ff = f;
if (dd == -1e18)
dd = i;
if (ee == -1e18)
ee = i;
if (ff == -1e18)
ff = i;
int ed = 0;
if (ff > 0)
{
if (ee <= dd)
continue;
int l = 0, r = 1e9;
while (l <= r)
{
int mid = l + r >> 1;
if (dd + mid * ff < ee)
l = mid + 1, ed = mid * ff + dd;
else
r = mid - 1;
}
}
else
{
if (ee >= dd)
continue;
ff = -ff;
int l = 0, r = 1e9;
while (l <= r)
{
int mid = l + r >> 1;
if (dd - mid * ff > ee)
l = mid + 1, ed = dd - mid * ff;
else
r = mid - 1;
}
swap(ed, dd);
}
int t = (ed - dd) / ff + 1;
ans += (dd + ed) * t / 2;
}
}
else
{
for (int i = a; i > b; i += c)
{
int dd = d, ee = e, ff = f;
if (dd == -1e18)
dd = i;
if (ee == -1e18)
ee = i;
if (ff == -1e18)
ff = i;
int ed = 0;
if (ff > 0)
{
if (ee <= dd)
continue;
int l = 0, r = 1e9;
while (l <= r)
{
int mid = l + r >> 1;
if (dd + mid * ff < ee)
l = mid + 1, ed = mid * ff + dd;
else
r = mid - 1;
}
}
else
{
if (ee >= dd)
continue;
ff = -ff;
int l = 0, r = 1e9;
while (l <= r)
{
int mid = l + r >> 1;
if (dd - mid * ff > ee)
l = mid + 1, ed = dd - mid * ff;
else
r = mid - 1;
}
swap(ed, dd);
}
int t = (ed - dd) / ff + 1;
ans += (dd + ed) * t / 2;
}
}
cout << ans << endl;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int T = 1;
// cin >> T;
while (T--)
solve();
return 0;
}
// 5267431
// 4576213
// 2212222111222111122111112111
// 4576213
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3544kb
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: 56ms
memory: 3616kb
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
Wrong Answer
time: 0ms
memory: 3808kb
input:
ans=0 for i in range(31,321983,2): for j in range(313,382193): ans+=j print(ans)
output:
0
result:
wrong answer 1st lines differ - expected: '11756963404587200', found: '0'