这题....我WA在没开longlong [手动微笑】
#include <bits/stdc++.h>
const int maxn=2e5+50;
const int INF=0x3f3f3f3f;
using namespace std;
long long a[maxn]={0};
int main(){
int m,n;
cin>>n>>m;
for(int i=1;i<=m;i++){//差分数组
int x,y;
cin>>x>>y;
a[x]+=1;
a[y+1]-=1;
}
for(int i=1;i<=n;i++){//通过前缀和得到原数组
a[i]+=a[i-1];
}
sort(a+1,a+n+1);
// for(int i=1;i<=n;i++)cout<<a[i]<<" ";
long long sum=0;
for(long long i=1;i<=n;i++){//快乐计算然后WA在int
sum+=a[i]*i;
}
cout<<sum;
return 0;
}
还是放一下官方题解