背景 Background
成成第一次模拟赛 第二道
描述 Description
为了能在下一次跑步比赛中有好的发挥,贝茜在一条山路上开始了她的训练
。贝茜希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:
奶牛独自进山的时间不得超过M秒(1 <= M <= 10,000,000)。
整条山路被贝茜划分成T个长度相同的小段(1 <= T <= 100,000),并且,
贝茜用S_i表示第i个小段的路况。S_i为u,f,d这3个字母之一,它们分别表示
第i个小段是上坡、平地,或是下坡。
贝茜要花U秒(1 <= U <= 100)才能跑完一段上坡路,跑完一段平地的耗时是
F秒(1 <= F <= 100),跑完一段下坡路要花D秒(1 <= D <= 100)。注意,沿山路
原路返回的时候,原本是上坡路的路段变成了下坡路,原本是下坡路的路段变成
了上坡路。
贝茜想知道,在能按时返回农场的前提下,她最多能在这条山路上跑多远。
输入格式 Input Format
输入格式:
* 第1行: 5个用空格隔开的整数:M,T,U,F,以及D
* 第2..T+1行: 第i+1行为1个字母S_i,描述了第i段山路的路况
输出格式 Output Format
输出格式:
* 第1行: 输出1个整数,为贝茜在按时回到农场的前提下,最多能跑到多远
program p1003;
var i,a1,a2,a3,m,t:longint;
l:array[1..100000] of char;
begin
readln(m,t,a1,a2,a3);
for i:=1 to t do
readln(l[i]);
a1:=a1+a3;
a3:=a1;
a2:=2*a2;
for i:=1 to t do
begin
case l[i] of
'u': dec(m,a1);
'f': dec(m,a2);
'd': dec(m,a3);
end;
if m<0 then
begin
writeln(i-1);
halt;
end;
if (i=t)and(m>=0)then
begin
writeln(t);
halt;
end;
end;
writeln(i);
end.
var
m,t,u,f,d,i:longint;
ch:char;
sum1,sum2,t1:longint;
a:array[1..10000000] of longint;
begin
readln(m,t,u,f,d);
for i:=1 to t do
begin
readln(ch);
if ch='u' then a[i]:=u+d;
if ch='f' then a[i]:=f*2;
if ch='d' then a[i]:=d+u;
end;
for i:=1 to t do
begin
sum1:=sum1+a[i];
sum2:=sum1+a[i+1];
inc(t1);
if (sum1
begin
writeln(t1);
halt;
end;
end;
end.
背景 Background
成成第一次模拟赛 第二道
描述 Description
为了能在下一次跑步比赛中有好的发挥,贝茜在一条山路上开始了她的训练
。贝茜希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:
奶牛独自进山的时间不得超过M秒(1 <= M <= 10,000,000)。
整条山路被贝茜划分成T个长度相同的小段(1 <= T <= 100,000),并且,
贝茜用S_i表示第i个小段的路况。S_i为u,f,d这3个字母之一,它们分别表示
第i个小段是上坡、平地,或是下坡。
贝茜要花U秒(1 <= U <= 100)才能跑完一段上坡路,跑完一段平地的耗时是
F秒(1 <= F <= 100),跑完一段下坡路要花D秒(1 <= D <= 100)。注意,沿山路
原路返回的时候,原本是上坡路的路段变成了下坡路,原本是下坡路的路段变成
了上坡路。
贝茜想知道,在能按时返回农场的前提下,她最多能在这条山路
writeln
输出