QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#579281 | #9255. Python Program | zhz_vite | WA | 0ms | 3768kb | C++23 | 1.6kb | 2024-09-21 11:25:29 | 2024-09-21 11:25:31 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
using namespace std;
int I, n, *a[3], *b[3], *c[3], ans;
void proc(const char* a, int** A) {
if (!isalpha(*a))
A[n] = new int(stoi(a));
else
A[n] = &I;
}
signed main(){
string s;
getline(cin, s); // 从标准输入读取一行字符串
for (int _ : {0, 1}) { // 对于 0 和 1 两次循环
getline(cin, s); // 读取下一行字符串
char a[9], b[9], c[9]{}; // 定义三个字符数组,存储输入的参数
sscanf(s.c_str(), "%*[\tf]or %*c in range(%[^,)],%[^,)],%[^,)]):", a, b, c);
// 解析字符串 s,提取范围的参数 a, b, c
if (!*c) *c = '1'; // 如果 c 为空,将其设为 '1'
proc(a, ::a); // 调用 proc 函数处理 a
proc(b, ::b); // 调用 proc 函数处理 b
proc(c, ::c); // 调用 proc 函数处理 c
++n; // 增加 n 的值
}
int F{**c > 0 ? 1 : -1}; // 根据 c 的值设置 F 为 1 或 -1
for (I = **a; I * F < **b * F; I += **c) { // 在 I 的范围内循环
int A{*a[1]}, B{*b[1]}, C{*c[1]}, f{1}; // 获取指针指向的值
if (C < 0) A *= -1, B *= -1, C *= -1, f *= -1; // 如果 C 小于 0,调整 A, B, C 和 f 的符号
int D{(B - A + C - 1) / C}; // 计算 D
if (B > A) // 如果 B 大于 A
ans += (A * 2 + (D - 1) * C) * D / 2 * f; // 更新答案
}
cout << ans << endl; // 输出答案
return 0; // 返回 0
}
详细
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3768kb
input:
ans=0 for a in range(1,3): for b in range(5,1,-2): ans+=b print(ans)
output:
6
result:
wrong answer 1st lines differ - expected: '16', found: '6'