题意:环形跑道上有n个加油站,每个站可以加pi单位的油,从当前站开到下一站需要qi的油,问是否能够环游一圈。
思路:枚举。首先如果总需求量>总供给量,那么不可能。否则就枚举起点,如果油箱里的油不足以跑到下一站,就把下一站作为起点。
code:
//#inclide <bits/stdc++.h>
#include <cstdio>
using namespace std;const int N=100005;
int p[N],q[N];
int main()
{int T,n,s1,s2,s,ans;scanf("%d",&T);for (int ca=1;ca<=T;ca++){scanf("%d",&n);s1=s2=0;for (int i=1;i<=n;i++) scanf("%d",&p[i]),s1+=p[i];for (int i=1;i<=n;i++) scanf("%d",&q[i]),s2+=q[i];printf("Case %d: ",ca);if (s1<s2){puts("Not possible");continue;}ans=1;s=0;for (int i=1;i<=n;i++){s+=p[i];s-=q[i];if (s<0){s=0;ans=i+1;}}printf("Possible from station %d\n",ans);}
}