美團(tuán)筆試——空間回廊(c++)

? 孟應(yīng)杰的網(wǎng)站: www.mengyingjie.com ?

??空間回廊

??題目描述:

有一款叫做空間回廊的游戲,游戲中有著n個房間依次相連,如圖,1號房間可以走到2號房間,以此類推,n號房間可以走到1號房間。

這個游戲的最終目的是為了在這些房間中留下盡可能多的烙印,在每個房間里留下烙印所花費(fèi)的法力值是不相同的,已知他共有m點(diǎn)法力值,這些法力是不可恢復(fù)的。



小明剛接觸這款游戲,所以只會耿直的玩,所以他的每一個行動都是可以預(yù)料的:

1.一開始小明位于1號房間。
2.如果他剩余的法力能在當(dāng)前的房間中留下一個烙印,那么他就會毫不猶豫的花費(fèi)法力值。
3.無論是否留下了烙印,下一個時刻他都會進(jìn)入下一個房間,如果當(dāng)前位于i房間,則會進(jìn)入i+1房間,如果在n號房間則會進(jìn)入1號房間。
4.當(dāng)重復(fù)經(jīng)過某一個房間時,可以再次留下烙印。

很顯然,這個游戲是會終止的,即剩余的法力值不能在任何房間留下烙印的時候,游戲終止。請問他共能留下多少個烙印。

輸入

輸入第一行有兩個正整數(shù)n和m,分別代表房間數(shù)量和小明擁有的法力值。(1<=n<=100000,1<=m<=10^18)
輸入第二行有n個正整數(shù),分別代表1~n號房間留下烙印的法力值花費(fèi)。(1<=a_i<=10^9)

輸出

輸出僅包含一個整數(shù),即最多能留下的烙印。

樣例輸入

4 21
2 1 4 3

樣例輸出

9

提示

樣例解釋:
顯然是所有房間都留下兩個烙印,然后剩下1點(diǎn)法力值,僅能在2號房間再留下一個烙印.

?代碼實(shí)現(xiàn)

#include<iostream>
using namespace std;

int main(){
    //輸入房間數(shù)量m,小明擁有的法力值n
    int n, m;
    cin >> n >> m;
    //輸入每個房間消耗的法力值
    int arr[n];
    for(int i = 0; i < n; i++){
        cin >> arr[i];
    }
    //定義兩個變量,cnt用來計數(shù),記錄留下的烙印數(shù)
    //sign,為設(shè)立的標(biāo)志,當(dāng)小明在一圈中消耗過法力值,標(biāo)志位置為1,
    //如果一圈下來sign=0,那么代表這一圈小明沒有消耗法力值,那么就可以結(jié)束循環(huán)了。
    int cnt = 0;
    int sign = 0;
    //循環(huán)開始,因?yàn)椴恢酪h(huán)多少遍,所以中間參數(shù)為空
    for(int i = 0;  ; i++ ){
        //如果法力值大于當(dāng)前格子的法力值
        if( m >= arr[i]){
            m = m - arr[i]; //法力值減去當(dāng)前格子的法力值
            cnt++;          //烙印數(shù)+1
            sign = 1;       //本圈消耗了法力值,sign=1
        }
        //當(dāng)i = n - 1,說明一次循環(huán)結(jié)束,如果sign=1,則需要進(jìn)行下一輪循環(huán)
        //那么就把sign歸0,有因?yàn)榻Y(jié)束時會有i++,所以i=0-1,那么就開啟新一輪循環(huán)
        if((i == n - 1) && (sign == 1)){
            sign = 0;
            i = 0-1;
        }
        //當(dāng)i = n - 1,循環(huán)結(jié)束,sign=0,則不需要繼續(xù)循環(huán),直接跳出死循環(huán)。
        else if((i == n - 1) && (sign == 0)){
            break;
        }
    }
    cout << cnt << endl;
    return 0;

}

遇到此類問題,但看了文章還是未解決,
評論或加 QQ:781378815

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文/麥大人 陌上人如玉,公子世無雙。 距離2003年4月1日,已經(jīng)整整過去16年。 到了這一天,億萬榮迷都會自發(fā)寫...
    西門老爹閱讀 7,874評論 112 302
  • 一如既往地困倦和鋪天蓋地的工作量。 一直都在無謂地忙碌。身處在生活的軌道上,負(fù)重前行,而走過去了才發(fā)覺,很多事情都...
    偏偏喜歡你sky閱讀 295評論 0 5

友情鏈接更多精彩內(nèi)容