【牛客 差分】值周

题目

值周

思路

和校门外的树一样,唯一不同的是本题数组要开的大一些,其他都一样。

代码

#include
using namespace std;
const int N=100000010;
int a[N]={0},b[N];
int main()
{
    std::ios::sync_with_stdio(false);
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        b[i]=a[i]-a[i-1];
    }
    int l,r;
    while(m--)
    {
        cin>>l>>r;
        b[l]=b[l]+1;
        b[r+1]=b[r+1]-1;
    }
    int count=0;
    for(int i=0;i<=n;i++)
    {
        a[i]=a[i-1]+b[i];
        if(a[i]==0)
            count++;
    }
    cout<<count;
    return 0;
}

你可能感兴趣的:(c++)