这题比较简单,题解我就偷下懒哈~~
题解:这题是到数学题,从a[i]-d[j]到b[i]-c[j],只要这个值在l~r中,这个点就是可行的,最后判断有多少个可行的点就行了。
#include <iostream>
#include <cstdio>
using namespace std;
int p,q,l,r,a[1005],b[1005],c[1005],d[1005],x[1005],ans;
int main()
{
scanf("%d%d%d%d",&p,&q,&l,&r);
for (int i=1;i<=p;i++) scanf("%d%d",&a[i],&b[i]);
for (int i=1;i<=q;i++) scanf("%d%d",&c[i],&d[i]);
//solve
for (int i=1;i<=p;i++)
for (int j=1;j<=q;j++)
if (b[i]>=c[j])
for (int k=a[i]-d[j];k<=b[i]-c[j];k++)if (k>=l && k<=r) x[k]=1;
for (int i=l;i<=r;i++) if (x[i]) ans++;
cout <<ans<<endl;
return 0;
}