QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#579281#9255. Python Programzhz_viteWA 0ms3768kbC++231.6kb2024-09-21 11:25:292024-09-21 11:25:31

Judging History

你现在查看的是最新测评结果

  • [2024-09-21 11:25:31]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3768kb
  • [2024-09-21 11:25:29]
  • 提交

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'