7-2 汽車加油問題 (20分) 一輛汽車加滿油後可行駛 n公里。旅途中有若干個加油站。設計一個有效算法,指出應 在哪些加油站停靠加油,使沿途加油次數最少。

一輛汽車加滿油後可行駛 n公里。旅途中有若干個加油站。設計一個有效算法,指出應 在哪些加油站停靠加油,使沿途加油次數最少。

輸入格式:

第一行有 2 個正整數n和 k(k<=1000 ),表示汽車加滿油後可行駛n公里,且旅途中有 k個加油站。 第二行有 k+1 個整數,表示第 k 個加油站與第k-1 個加油站之間的距離。 第 0 個加油站表示出發地,汽車已加滿油。 第 k+1 個加油站表示目的地。

輸出格式:

輸出最少加油次數。如果無法到達目的地,則輸出“No Solution!”。

輸入樣例:

7 7
1 2 3 4 5 1 6 6 

輸出樣例:

4

代碼:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int m,n;
    scanf("%d%d",&m,&n);
    int i,j;
    int a[n+1];
    for(i=0;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    int sum=a[0];//從第一站記起
    int count=0;
    for(i=0;i<=n;i++)
    {
        if((sum+a[i])<=m)
        {
            sum+=a[i];
        }
        else if(a[i]>m)
        {
            printf("No Solution!");
            return 0;
        }
        else
        {
            count++;
            sum=a[i];//更新距離
        }
    }
    printf("%d\n",count);
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章