#include <bits/stdc++.h>
using namespace std;
int main(){
    int a[1000005],n,k,sum=0;
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        if(i==k) sum-=a[i];
        else sum+=a[i];
    }
    cout<<sum<<'\n';
    return 0;
}

2 条评论

  • @ 2025-9-11 18:51:21

    显然在 n=106,ai=109(1in,ik),ak=0n=10^6,a_i=10^9(1\leq i\leq n,i\not= k),a_k=0 时,答案为 (1061)×109(10^6-1)\times 10^9 ,它大于 int 的范围。

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        long long n,k,sum=0;
        cin>>n>>k;
        for(int i=1;i<=n;i++)
        {
            long long d; cin>>d;
            sum+=d*(i==k?-1:1);
        }
        cout<<sum<<endl;
        return 0;
    }
    
    • @ 2025-8-23 13:49:23

      数组 a 是从索引 1 开始使用的(即 a[1] 到 a[n]),这符合题目的输入要求(第 i 个数是 a[i])。但是,请注意:在计算和时,您对第 k 个元素进行了特殊处理(减去 a[k],而其他元素加上 a[i])。实际上,正确的操作应该是:所有元素都正常相加,但第 k 个元素不是加 a[k] 而是加 -a[k]。

      • 1

      信息

      ID
      4667
      时间
      ms
      内存
      MiB
      难度
      1
      标签
      递交数
      59
      已通过
      17
      上传者