第三届程序设计大赛 汽车加油

第三届程序设计大赛 汽车加油

Time Limit:1000MS  Memory Limit:65536K
Total Submit:733 Accepted:209

Description

一辆汽车加满油后可行驶N公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。

Input

第一行有2 个正整数N和K(1 <= N <= 100,1 <= K< = 100),表示汽车加满油后可行驶N公里,且旅途中有K个加油站。接下来的1 行中,有K+1 个整数,表示第K个加油站与第K-1 个加油站之间的距离。第0 个加油站表示出发地,汽车已加满油。第K+1 个整数表示第K个加油站与目的地的距离。

Output

将编程计算出的最少加油次数输出。如果无法到达目的地,则输出
No Solution(注意:No和Solution之间有一个空格)

Sample Input

8 8
3 2 3 6 5 4 2 7 2

Sample Output

5
slove:
#include<stdio.h>
void main()
{
	int i,n,k,a[1000],s,t=0,g=0;
	scanf("%d%d",&n,&k);
	for(i=0;i<=k;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<=n;i++)
	{
	    if(n<a[i])
		{
			printf("No Solution");g=1;	break;
		}
	}
	s=a[0];
	for(i=1;i<=k;i++)
	{
		if(g)
		{
			break;
		}
		s=s+a[i];
		if(s<n);
		else if(s>n)
		{
			t++;
			s=a[i];
		}
		else if(s==n)
		{
			t++;
			s=0;
		}
	}
	if(g==0)
	printf("%d",t);
}


猜你喜欢

转载自blog.csdn.net/weixin_40789841/article/details/78534226