上海市青少年算法2023年6月月赛(丙组)

上海市青少年算法2023年6月月赛(丙组)

T1. 差分求和
题目描述
给定一个整数序列,对其中任意两个数,计算后项减前项的差,输出这些差的和。
例如对于 a1, a2,a3,a4来说,输出
(a2-a1) - (a3-a1) - (a3-a2) - (a4-a1) - (a4-a2) - (a4-a3)
输入格式
第一行:单个整数 n
第二行:n 个整数 a1,a2 ,…,an 
输出格式
单个整数表示结果
数据范围
对 50% 的数据,1≤n≤500,1≤ai≤500
对 100% 的数据,1≤ai≤500,000
样例数据
输入:
3
1 2 3 
输出:
-2

/*将计算公式展开找到计算规律
(a2-a1) - (a3-a1) - (a3-a2) - (a4-a1) - (a4-a2) - (a4-a3)
=a2-a1-2*a3+(a1+a2)-3*a4+(a1+a2+a3)
*/
#include <bits/stdc++.h>
using namespace std;
const int N=5e5+5;
long long a[N];
long long b[N];
int main() {
    int n, i;
    scanf("%d", &n);
    for (i = 1; i <= n; i++) {
        scanf("%lld",&a[i]);
        b[i]=a[i]+b[i-1];// 前缀和数组
    }
    // 

猜你喜欢

转载自blog.csdn.net/lybc2019/article/details/131384102