思路:如果前面累计的b小于a那就会回到0,否则一直向右推到n+1
代码:
#include<bits/stdc++.h>
#define LL long long
#define F(x,s,t) for(int x=s;x<=t;x++)
using namespace std;
int read(){
int x=0,f=1;
char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
const int N = 1e5 + 10;
int a[N], b[N];
int main(){
int T = read();
while(T -- ){
int n = read();
int cnt = 0;
F(i, 1, n){
a[i] = read(), b[i] = read();
cnt += a[i], cnt -= b[i - 1];
if(cnt > 0){
puts("0");
break;
}
}
if(cnt <= 0)printf("%d\n", n + 1);
}
return 0;
}