QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#572474 | #9255. Python Program | lonlyness | AC ✓ | 31ms | 3876kb | C++23 | 8.0kb | 2024-09-18 14:49:24 | 2024-09-18 14:49:25 |
Judging History
answer
// _ _ _
// | | ___ _ __ ___ | | (_) _ __ ___ ___ ___
// | | / _ \ | '_ \ / _ \ | | | | | '_ \ / _ \ / __| / __|
// | | | (_) | | | | | | __/ | | | | | | | | | __/ \__ \ \__ \
// |_| \___/ |_| |_| \___| |_| |_| |_| |_| \___| |___/ |___/
//
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<cmath>
#include<unordered_map>
using namespace std;
#define int long long
#define endl "\n"
const int N = 1e5 + 10;
typedef pair<int, int> PII;
int k;
int get(string s) {
int res = 0;
bool flag = 1;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '-') {
flag = 0;
continue;
}
res = res * 10 + s[i] - '0';
}
if (!flag)res = -res;
return res;
}
void solve() {
string s[100];
int idx = 0;
string n, m;
cin >> s[idx++];
cin >> s[idx++];
cin >> n;
cin >> s[idx++];
cin >> s[idx++];
string a, b, c, d, e, f;
for (int i = 0; i < s[idx - 1].size(); i++) {
if (s[idx - 1][i] == '(') {
int j = i + 1;
// cout<<i<<' '<<j<<endl;
while (j < s[idx - 1].size() && s[idx - 1][j] != ',' && s[idx - 1][j] != ')') {
a += s[idx - 1][j];
j++;
}
// cout<<i<<' '<<j<<endl;
i = j;
j++;
while (j < s[idx - 1].size() && s[idx - 1][j] != ',' && s[idx - 1][j] != ')') {
b += s[idx - 1][j];
j++;
if (s[idx - 1][j] == ')')break;
}
if (s[idx - 1][j] == ')')break;
j++;
i = j;
// cout<<j<<endl;
while (j < s[idx - 1].size() && s[idx - 1][j] != ',' && s[idx - 1][j] != ')') {
c += s[idx - 1][j];
j++;
}
}
}
cin >> s[idx++];
cin >> s[idx++];
cin >> s[idx++];
cin >> s[idx++];
for (int i = 0; i < s[idx - 1].size(); i++) {
if (s[idx - 1][i] == '(') {
int j = i + 1;
// cout<<i<<' '<<j<<endl;
while (j < s[idx - 1].size() && s[idx - 1][j] != ',' && s[idx - 1][j] != ')') {
d += s[idx - 1][j];
j++;
}
// cout<<i<<' '<<j<<endl;
i = j;
j++;
while (j < s[idx - 1].size() && s[idx - 1][j] != ',' && s[idx - 1][j] != ')') {
e += s[idx - 1][j];
j++;
if (s[idx - 1][j] == ')')break;
}
if (s[idx - 1][j] == ')')break;
j++;
i = j;
while (j < s[idx - 1].size() && s[idx - 1][j] != ',' && s[idx - 1][j] != ')') {
f += s[idx - 1][j];
j++;
}
}
}
// cout<<a<<' '<<b<<' '<<c<<' '<<d<<' '<<e<<' '<<f<<endl;
int ans = 0;
if (c.empty()) {
if (f.empty()) {
for (int i = get(a); i < get(b); i++) {
int d1, e1;
if (d == n)d1 = i;
else d1 = get(d);
if (e == n)e1 = i;
else e1 = get(e);
if (d1 < e1) {
int st = d1;
int ed = e1 - 1;
ans += (st + ed) * (ed - st + 1) / 2;
}
}
} else {
for (int i = get(a); i < get(b); i++) {
int d1, e1, f1;
if (d == n)d1 = i;
else d1 = get(d);
if (e == n)e1 = i;
else e1 = get(e);
if (f == n)f1 = i;
else f1 = get(f);
// cout<<d1<<' '<<e1<<' '<<f1<<endl;
if (f1 > 0) {
if (d1 < e1) {
int st = d1;
int cnt = (e1 - 1 - d1) / f1;
int ed = st + cnt * f1;
ans += (st + ed) * (cnt + 1) / 2;
}
} else {
if (d1 > e1) {
int st = d1;
int cnt = (d1 - (e1 + 1)) / f1;
cnt*=-1;
int ed = st + cnt * f1;
// cout << st << ' ' << ed << endl;
ans += (st + ed) * (cnt + 1) / 2;
}
}
}
}
} else {
if (f.empty()) {
if (get(c) > 0) {
for (int i = get(a); i < get(b); i += get(c)) {
int d1, e1;
if (d == n)d1 = i;
else d1 = get(d);
if (e == n)e1 = i;
else e1 = get(e);
if (d1 < e1) {
int st = d1;
int ed = e1 - 1;
ans += (st + ed) * (ed - st + 1) / 2;
}
}
} else {
for (int i = get(a); i > get(b); i += get(c)) {
int d1, e1;
if (d == n)d1 = i;
else d1 = get(d);
if (e == n)e1 = i;
else e1 = get(e);
if (d1 < e1) {
int st = d1;
int ed = e1 - 1;
ans += (st + ed) * (ed - st + 1) / 2;
}
}
}
} else {
if (get(c) > 0) {
for (int i = get(a); i < get(b); i += get(c)) {
int d1, e1, f1;
if (d == n)d1 = i;
else d1 = get(d);
if (e == n)e1 = i;
else e1 = get(e);
if (f == n)f1 = i;
else f1 = get(f);
if (f1 > 0) {
if (d1 < e1) {
int st = d1;
int cnt = (e1 - 1 - d1) / f1;
int ed = st + cnt * f1;
ans += (st + ed) * (cnt + 1) / 2;
}
} else {
if (d1 > e1) {
int st = d1;
int cnt = (d1 - (e1 + 1)) / f1;
cnt*=-1;
int ed = st + cnt * f1;
// cout << st << ' ' << ed << endl;
ans += (st + ed) * (cnt + 1) / 2;
}
}
}
} else {
for (int i = get(a); i > get(b); i += get(c)) {
int d1, e1, f1;
if (d == n)d1 = i;
else d1 = get(d);
if (e == n)e1 = i;
else e1 = get(e);
if (f == n)f1 = i;
else f1 = get(f);
if (f1 > 0) {
if (d1 < e1) {
int st = d1;
int cnt = (e1 - 1 - d1) / f1;
int ed = st + cnt * f1;
ans += (st + ed) * (cnt + 1) / 2;
}
} else {
if (d1 > e1) {
int st = d1;
int cnt = (d1 - (e1 + 1)) / f1;
cnt*=-1;
int ed = st + cnt * f1;
// cout << st << ' ' << ed << endl;
ans += (st + ed) * (cnt + 1) / 2;
}
}
}
}
}
}
cout << ans << endl;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t = 1;
// cin>>t;
while (t--) {
solve();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3648kb
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: 3804kb
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: 23ms
memory: 3808kb
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: 5ms
memory: 3584kb
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: 31ms
memory: 3876kb
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