比赛 |
NOIP2008集训模拟2 |
评测结果 |
AAAAAATTTT |
题目名称 |
美酒节赛羊 |
最终得分 |
60 |
用户昵称 |
elysian |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2008-11-11 10:40:31 |
显示代码纯文本
program elysian;
const
fin='goat.in';fout='goat.out';
var
f:array[0..12,0..110] of longint;
sn,pn,ans:longint;
f1,f2:text;
{function max(a,b:longint):longint;
begin
if a>=b then max:=a
else max:=b;
end; }
procedure print;
begin
assign(f2,fout);rewrite(f2);
writeln(f2,ans);
close(f2);
halt;
end;
procedure main;
var
p,i,t,count:longint;
begin
t:=0;count:=11;
repeat
inc(t);
for p:=0 to pn do
begin
if (p-2>=0)and(f[t-1,p-2]+5>=f[t,p]) then f[t,p]:=f[t-1,p-2]+5;
if (p-5>=0)and(f[t-1,p-5]+10>=f[t,p]) then f[t,p]:=f[t-1,p-5]+10;
if p+1<=pn then
if f[t-1,p+1]+1>f[t,p] then f[t,p]:=f[t-1,p+1]+1;
if (p+10=pn)and(t-10>=0) then
if f[t-10,p+10]>f[t,p] then f[t,p]:=f[t-10,p+10];
if f[t,p]>=sn then
begin
if t<11 then ans:=t
else ans:=count;
print;
end;
end;
if t>10 then
begin
for i:=1 to 11 do
for p:=0 to pn do
f[i,p]:=f[i+1,p];
count:=count+1;
t:=10;
end;
until 1<>1;
end;
procedure init;
begin
assign(f1,fin);reset(f1);
readln(f1,sn,pn);
if pn=1 then begin ans:=sn;print;end;
close(f1);
fillchar(f,sizeof(f),0);
end;
begin
init;
main;
end.