A19856. 训练描述为了能在下一次广马比赛中有好的发挥,华农广马训练队在华农校内制定了严格的训练计划。为了保证正常的学习和工作,训练队每次训练的时间不得超过M秒(1<=M<=10000000)。华农里面的道路从出发集中点开始被教练划分成了T个长度相同的小段训练跑道(1<=T<=100000),并且,教练用S_i表示第i个小段的路况。S_i为u,f,d这3个字母之一,它们分别表示第i个小段是上坡、平地,或是下…
填空题
容易
知识点
题目描述
训练
描述
为了能在下一次广马比赛中有好的发挥,华农广马训练队在华农校内制定了严格的训练计划。为了保证正常的学习和工作,训练队每次训练的时间不得超过M秒(1<=M<=10000000)。
华农里面的道路从出发集中点开始被教练划分成了T个长度相同的小段训练跑道(1<=T<=100000),并且,教练用S_i表示第i个小段的路况。S_i为u,f,d这3个字母之一,它们分别表示第i个小段是上坡、平地,或是下坡。
训练队要花U秒(1<=U<=100)才能跑完一段上坡路,跑完一段平地的耗时是F秒(1<=F<=100),跑完一段下坡路要花D秒(1<=D<=100)。每次训练,训练队都是到达目的地后原路返回出发集中点。注意,沿道路原路返回的时候,原本是上坡路的路段变成了下坡路,原本是下坡路的路段变成了上坡路。教练想知道,在能按时返回出发集中点的前提下,训练队最多能在这条训练道路上跑多远,注意,在训练的过程中教练严格要求队员每次必须以他划分的小段为单元来完成训练,也就是每一小段训练跑道要么不跑,要么全部跑完。
输入格式
第1行:5个用空格隔开的整数:M,T,U,F,以及D
第2..T+1行:第i+1行为1个字母S_i,描述了第i段训练道路的路况
输出格式
输出1个整数,表示训练队按时返回出发集中点的前提下,最多能跑到多少小段训练跑道。
输入样例
13 5 3 2 1
u
f
u
d
f输出样例
3参考答案
#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;
char n[100002];
int main(int argc, char *argv[])
{
int m,t,u,f,d;
cin>>m>>t>>u>>f>>d;
int i;
for(i=1;i<=t;i++) cin>>n[i];
int sum=0;
for(i=1;i<=t;i++){
if(n[i]=='u'||n[i]=='d')sum+=(u+d);
else sum+=(2*f);
if(sum>m)break;
}
if(i>t)printf("%d\n",t);
else printf("%d\n",i-1);
return 0;
}
上一题
下一题