信息学奥赛C++语言: 跑步
【題目描述】
為了迎接學(xué)校的一個(gè)長(zhǎng)跑比賽,小明每天堅(jiān)持晨練,為了適應(yīng)各種長(zhǎng)跑比賽場(chǎng)地,他在小區(qū)找到了一條能應(yīng)對(duì)各種地形的跑道,這條跑道包括上坡、平地和下坡。
他把選擇的跑道劃分成T個(gè)單位長(zhǎng)度,每個(gè)單位長(zhǎng)度的跑道地形可能是上坡、平地或者下坡。輸入中使用三個(gè)字母來表示每個(gè)單位長(zhǎng)度跑道的地形情況,u表示是上坡,f表示是平地,d表示是下坡。
現(xiàn)在已知小明跑步的時(shí)間為M秒,每跑一個(gè)單位長(zhǎng)度的上坡需要U秒、平地需要F秒、下坡需要D秒。
請(qǐng)幫小明計(jì)算一下,在M秒內(nèi)最遠(yuǎn)能跑多遠(yuǎn)。以整數(shù)為單位,比如最后一單位長(zhǎng)度跑道小明能跑一部分,但不能跑完整個(gè)單位長(zhǎng)度跑道,則這一部分就不算。請(qǐng)認(rèn)真分析輸入輸出樣例。
【輸入】
第一行包含五個(gè)整數(shù),并且兩兩之間用空格隔開,分別為M,T,U,F和D。
從2~T+1行:每行一個(gè)字母,表示這個(gè)單位的地形。
【輸出】
一個(gè)整數(shù)表示他能跑的最遠(yuǎn)距離。
【輸入樣例】
樣例1:
10 5 3 2 1
u
f
u
d
f
樣例2:
8 5 4 2 1
f
f
f
d
d
【輸出樣例】
樣例1:
4
樣例2:
5
代碼
#include<cstdio> using namespace std; int s,U,F,D; long M,T; char n; int main() {scanf("%ld%ld%d%d%d",&M,&T,&U,&F,&D);for(int i=0;i<T;i++){scanf(" %c",&n);if(n=='u')M-=U;if(n=='f')M-=F; if(n=='d')M-=D;if(M>=0)s++;elsebreak; } printf("%d",s);return 0; }總結(jié)
以上是生活随笔為你收集整理的信息学奥赛C++语言: 跑步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最大数max(x,y,z)(信息学奥赛一
- 下一篇: 信息学奥赛C++语言:奇数统计与输出