题目: | 锻炼计划 | |
来源: | Tyvj 1599 | |
题目大意: | 给定M个计划和初始体力N,每项计划中会损耗体力,每秒会增加1体力,求是否会 累死,输出何时累死,若没事则输出最后的体力。一天1440分钟 | |
数据范围: | 0<=m<=500 | |
样例: | 10 1 Basketball 1 10 1 | Accepted 1440 |
做题思路: | 一分钟一分钟的模拟,知道死或者没有计划或者这一天结束了为止 | |
知识点: | 模拟、枚举 |
var
a,b,s:array[0..510]of longint;
n,m,i,j:longint;
ch:char;
begin
readln(n,m);
fori:=1 to m do
begin
read(ch);
while ch<>' ' do read(ch);
readln(a[i],b[i],s[i]);
end;
j:=1;
fori:=1 to 1440 do
begin
inc(n);
if(i>=a[j])and(i<=b[j]) then{<在计划中减体力>}
begin
dec(n,s[j]);
end;
ifi>=b[j] then{<已经结束计划了>}
begin
inc(j);
end;
ifn<=0 then{<累死了>}
begin
writeln('Runtime Error');
writeln(i);
halt;
end;
ifj>m then{<没有计划了>}
begin
inc(n,1440-i);
writeln('Accepted');
writeln(n);
halt;
end;
end;
writeln('Accepted'); {<这一天结束了>}
writeln(n);
end.
题目来源:
http://www.tyvj.cn:8080/Problem_Show.asp?id=1599