题目链接:ccf
思想:样例和解释能更好的的理解题意。就是求了一个满足题意的sum和。n的范围不大直接暴力算。分成两块N<=a[n]和N>a[n]
仔细思考一下Ai ≤ x <Ai+1 这个时候f(x)=i。所以这个区间给答案的贡献就是(Ai+1 - Ai) 详细推算可以参考简单推论
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e7+10;
ll a[maxn];
int main()
{
ll n,N,ans=0;
cin>>n>>N;
for(int i=1;i<=n;i++)
cin>>a[i];
int now=1;
for(int i=0;i<a[n];i++)
{
if(i<a[now])
ans+=(now-1);
else
ans+=now,now++;
}
ans+=(N-a[n])*n;
cout<<ans<<endl;
return 0;
}