题目大意:就是环形的路上,路上有n个加油站,每个加油站可以加一定量的油pi,到达下一个加油站需要消耗qi升油,现在问可以从出发点驶出然后能够到达起点的出发点序号最小是多少,如果不可能输出不可能。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=101001;
int a[maxn],b[maxn];
int main()
{
int t,n,i,j,sum,num,ans;
cin>>t;
for(int z=1;z<=t;z++) {
cin>>n;
for(i=1;i<=n;i++) cin>>b[i];
sum=0;
for(i=1;i<=n;i++) {
cin>>num;
a[i]=b[i]-num;
sum+=a[i];
}
if(sum<0) {
printf("Case %d: Not possible\n",z);
continue;
}
sum=0;
for(i=1;i<=n;i++) {
sum+=a[i];
if(sum<0) {
sum=0;
ans=i+1;
}
}
printf("Case %d: Possible from station %d\n",z,ans);
}
return 0;
}