QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#732504 | #9255. Python Program | SHOJIG# | AC ✓ | 3ms | 3848kb | C++20 | 4.3kb | 2024-11-10 14:54:32 | 2024-11-10 14:54:40 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
int k, p ,x;
string s[6];
vector<int> get(string str) {
int sum = 0, i = 0, k = 0, f = 1;
vector<int> v;
while(i < str.length()) {
sum = 0;
while(isdigit(str[i])) {
k = 1;
sum = sum * 10 + str[i++] - '0';
}
if(k == 1) {
v.push_back(sum * f);
f = 1;
}
k = 0;
while(!isdigit(str[i])){
if(str[i] == '-') {
f = -1;
}
if(str[i] == ',') {
v.push_back(1e8);
}
i++;
}
}
return v;
}
int calc(int d, int e, int f) {
if(d<e&&f>0) return (((e-d-1)/f)*f+2*d)*((e-d-1)/f+1)/2;
else if(d>e&&f<0) return (((e-d+1)/f)*f+2*d)*((e-d+1)/f+1)/2;
return 0;
}
void solve() {
for(int i = 1; i <= 5; i++) {
getline(cin, s[i]);
}
int ans = 0;
int l, r, step;
vector<int> v, v2;
v = get(s[2]);
v2 = get(s[3]);
if(v.size() == 3) {
l = v[0];
r = v[2];
step = 1;
}
else {
l = v[0];
r = v[2];
step = v[4];
}
int l1, r1, step1;
// cout << l << " " << r << " " << step << endl;
// cout << "--------" << endl;
if(step < 0) {
for(int i = l; i > r; i += step) {
if(v2.size() == 5) {
l1 = v2[0];
r1 = v2[2];
step1 = v2[4];
}
else if(v2.size() == 4) {
if(v2[0] == 1e8) { // l1 = i;
l1 = i;
r1 = v2[1];
step1 = v2[3];
}
else if(v2[2] == 1e8) { // r1 = i;
l1 = v2[0];
r1 = i;
step1 = v2[3];
}
else {
l1 = v2[0];
r1 = v2[2];
step1 = i;
}
}
else if(v2.size() == 2) {
if(v2[0] == 1e8) {
l1 = i;
r1 = v2[1];
step1 = 1;
}
else {
l1 = v2[0];
r1 = i;
step1 = 1;
}
}
else if(v2.size() == 3) {
l1 = v2[0];
r1 = v2[2];
step1 = 1;
}
//cout << l1 << " " << r1 << " " << step1 << endl;
ans += calc(l1, r1, step1);
}
}
else {
for(int i = l; i < r; i += step) {
if(v2.size() == 5) {
l1 = v2[0];
r1 = v2[2];
step1 = v2[4];
}
else if(v2.size() == 4) {
if(v2[0] == 1e8) { // l1 = i;
l1 = i;
r1 = v2[1];
step1 = v2[3];
}
else if(v2[2] == 1e8) { // r1 = i;
l1 = v2[0];
r1 = i;
step1 = v2[3];
}
else {
l1 = v2[0];
r1 = v2[2];
step1 = i;
}
}
else if(v2.size() == 2) {
if(v2[0] == 1e8) {
l1 = i;
r1 = v2[1];
step1 = 1;
}
else {
l1 = v2[0];
r1 = i;
step1 = 1;
}
}
else if(v2.size() == 3) {
l1 = v2[0];
r1 = v2[2];
step1 = 1;
}
//cout << l1 << " " << r1 << " " << step1 << endl;
ans += calc(l1, r1, step1);
}
}
cout << ans << endl;
}
/*
ans=0
for a in range(1,3):
for b in range(5,1,-2):
ans+=b
print(ans)
ans=0
for q in range(100,50,-1):
for i in range(q,77,20):
ans+=i
print(ans)
*/
signed main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int _ = 1;
//cin >> _;
while(_--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3616kb
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: 3620kb
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: 3ms
memory: 3560kb
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: 1ms
memory: 3592kb
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: 3848kb
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