一道差分前缀典例
区间加加减减考虑用差分
差分数组表示当前数与前一个数的差值
利用差分数组找原数组时把差分数组求前缀加到原数组
如果原数组全部是零 直接前缀 比如此题
#include<iostream>
#include<cstdio>
using namespace std;
int n,y,wth,wout;
int c[10000000];
int main()
{
int i,u,v,t=0;
int s=2e9,e=-2e9;
cin>>n;
for(i=1;i<=n;i++) {
cin>>u>>v;
c[u]++;
c[v]--;
s=min(s,u);
e=max(e,v-1);
}
for(i=s;i<=e;i++) {
c[i]=c[i-1]+c[i];
if(c[i]==0) {
y=0;
n++;
if(n>wout) wout=n;
}
if(c[i]!=0) {
n=0;
y++;
if(y>wth) wth=y;
}
}
cout<<wth<<" "<<wout;
return 0;
}