题目描述
设在一环行公路上有N个汽车站,每一站存有若干数量的汽油(其中有的站可能不存)。现在使一辆原来没有油的汽车从某站依反时针方向沿公路行驶,车站编号为反时针;每到一站即把该站的汽油全部带上(出发的站也如此)。试求从哪几站出发可以使汽车从该站出发环行一周,不致在中途因缺油而停车。
思路
暴力模拟枚举每一个点,然后将油量记录下来就可以了
O(n^2)
#include <stdio.h>
int a[1001][3];
int main()
{
int n;
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&a[i][1]);
for (int i=1;i<=n;i++)
scanf("%d",&a[i][2]);
int fg=0;
for (int i=1;i<=n;i++)
{
int t=a[i][1]-a[i][2],j=i+1,fl=0;
if (i==n) j=1;
if (t<=0) fl=1;
while (t>=0&&j!=i)
{
if (t>=0)
{
t+=a[j][1]-a[j][2];
j++;
if (j==n+1) j=1;
}
else
{
fl=1;
break;
}
}
if (t<0) fl=1;
if (fl==0)
{
printf("%d ",i);
fg=1;
}
}
if (fg==0) printf("No Result!");
}
Comments NOTHING