这是我的代码,题目在下面!
#include<iostream>
using namespace std;
int dp[100020];
int main()
{
ios::sync_with_stdio(false);
cout.tie(NULL);
int t=0,n=0,l1=0,r1=0,l2=0,r2=0,q=0;
cin>>t;
for(int i=0;i<t;i++)
{
cin>>n;
for(int j=0;j<n;j++)
{
cin>>l1>>r1>>l2>>r2;
q=0;
for(int z=l1;z<r1;z++)
{
for(int x=l2;x<r2;x++)
{
if(z+x==n)
{
q++;
}
}
}
}
cout<<q<<endl;
}
return 0;
}
周老板有两个神奇的次元袋,里面能放下无限的东西。
周老板的记性不是很好,他只记得第一个次元袋中有 L1 ~ R1 个苹果,第二个次元袋中有 L2 ~ R2 个苹果。
周老板想知道,如果他记得范围没有错误的话,一共有多少种可能的情况,可以使得两个次元袋中的苹果总数为 n。
例如:第一个袋中有 3 ~ 5 个苹果,第二个袋中有 1 ~ 4 个苹果,最终要凑出的苹果总数为 5。一共有两种情况可以满足要求,分别是和 4+1 和 3+2。
另外需要注意的是,如果第一个袋中有 2 ~ 5 个苹果,第二个袋中有 2 ~ 3 个苹果,最终要凑出的苹果总数为 5。一共有两种情况可以满足要求,分别是和 2+3 和 3+2。
输入的第一行,包含一个整数T,表示测试数据组数。
对于每组测试数据,第一行包含一个整数 n,第二行包含两个整数 L1,R1,第三行包含两个整数 L2,R2。
对于每组测试数据,输出单独一行一个整数表示答案。
4
5
3 5
1 4
100000
1 100000
1 100000
200000
1 100000
1 100000
114
514 1919
8 10
2
99999
1
0
1≤T≤5
1≤n≤2∗105
1≤L1≤R1≤105
1≤L2≤R2≤105