Java版
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int N = sc.nextInt();
int[] A = new int[n + 1];
for (int i = 1; i < A.length; i++) {
int x = sc.nextInt();
A[i] = x;
}
int sum = 0;
for (int i = 0; i < n; i++) {
sum += i*(A[i+1]-A[i]);
}
sum += n*(N-A[n]);
System.out.println(sum);
}
}
C++版
#include<cstdio>
#include<iostream>
using namespace std;
int main(){
int n,N;
scanf("%d %d",&n,&N);
int last = 0,now,sum = 0;
for(int i=0;i<=n;i++){
if(i==n) now = N;
else scanf("%d",&now); //else部分不需要包含大括号{}
//i对应f[i]从0--n,f[i]最大为n;
//(now-last)对应f[i]的个数,数组数据每相邻两个数之间的差
sum += i * (now -last);
last = now;
}
cout<<sum;
return 0;
}