uva 11093——Just Finish it up

来源:互联网 发布:淘宝卖家设置发货地址 编辑:程序博客网 时间:2024/04/25 11:38

题意:环形跑道上有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);    }}


0 0
原创粉丝点击