#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define debu
using namespace std;
const int maxn=1e5+50;
int cas=0,n;
int v[maxn];
int gt[maxn];
int cost[maxn];
void solve()
{
memset(v,0,sizeof(v));
int i=0,ans=-1,pos,flag;
int num=0,nw;
while(i<n)
{
nw=0;
flag=1;
v[i]=1;
for(int j=0; j<n; j++)
{
int nt=(i+j)%n;
nw-=cost[nt];
nw+=gt[nt];
if(nw<0)
{
flag=0;
pos=nt;
break;
}
}
if(flag)
{
ans=i;
break;
}
i=pos+1;
if(v[i]) break;
}
if(ans!=-1)
printf("Case %d: Possible from station %d\n",++cas,ans+1);
else printf("Case %d: Not possible\n",++cas);
}
int main()
{
#ifdef debug
freopen("in.in","r",stdin);
#endif // debug
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%d",>[i]);
for(int i=0; i<n; i++)
scanf("%d",&cost[i]);
solve();
}
return 0;
}
UVA 11093(p246)----Just Finish it up
最新推荐文章于 2018-08-19 20:59:07 发布