#include<cstdio>
#include<cstring>
#define MAX(x,y) ((x)>(y)?(x):(y))
int d1[5100],d2[5100],n;
int ok(int num)
{
int l=0,r=0,k=0,l1=0,r1=0;
for(int i=0;i<n;i++)
{
int t=0;
l+=d1[i];
r+=d2[i];
if(l>num)
{
if(l-num>l1||l-num>k)
return 0;
l1-=l-num;
k-=l-num;
l=num;
}
if(r>num)
{
if(r-num>r1||r-num>k)
return 0;
r1-=r-num;
k-=r-num;
r=num;
}
if(l1<l)
l1++;
if(r1<r)
r1++;
if(k<l+r)
k++;
}
return 1;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
int l=1,r=0;
for(int i=0;i<n;i++)
{
scanf("%d%d",&d1[i],&d2[i]);
r+=MAX(d1[i],d2[i]);
}
while(l<r)
{
int m=(l+r)>>1;
if(ok(m))
r=m;
else
l=m+1;
}
printf("%d\n",l-1);
}
return 0;
}
uva 1450 LA 4725
最新推荐文章于 2022-07-19 21:01:40 发布