noip普及组复赛模拟试题26(答案)(2)

2019-03-03 13:10

end;

until tf=true; writeln(h);

close(input);close(output); end. 或const

inf='water.in'; ouf='water.out'; var

n,m,i,j,k,tot,min,max:longint; a:array[1..10000] of longint; b:array[1..100] of longint; begin

assign(input,inf);reset(input); assign(output,ouf);rewrite(output); readln(n,m);

for i:=1 to n do a[i]:=0; for i:=1 to n do read(a[i]); for i:=1 to m do b[i]:=a[i];

min:=maxlongint; max:=-maxlongint;

if n=m then//如果水管数和人数相等,那么直接输出节水量的最大值就行了 begin

for i:=1 to m do

if b[i]>max then max:=b[i]; writeln(max);

close(input);close(output); halt; end;

for i:=m+1 to n do begin

min:=maxlongint; for j:=1 to m do if b[j]

min:=b[j];

k:=j;//找接水量最小的水管,并记录该水管的位置 end;

b[k]:=b[k]+a[i];//该水管的接水量+下一个人的接水量 end;

max:=-maxlongint; for i:=1 to m do

if b[i]>max then max:=b[i];//搜一遍,找接水量的最大值 writeln(max);

close(input);close(output);

end. 输入10 4

4 37 71 16 28 34 28 87 39 43 输出 124 输入100 20

76 26 67 21 73 19 66 23 46 57 63 8 58 65 94 65 96 1 98 52 92 36 28 7 67 94 92 76 85 38 54 88 28 33 33 55 4 94 66 28 69 86 67 98 36 14 94 27 41 59 79 96 96 29 100 52 11 27 60 87 56 54 66 38 52 87 100 82 46 70 52 34 52 65 78 74 35 94 29 84 77 40 86 19 24 79 42 6 32 53 44 85 61 31 99 64 74 61 81 81 输出 331

模拟法

Var a:array[1..10000] of integer; N,mI,j,k:longint; Begin

Assign(input,’water.in’);reset(input); Assign(output,’water.out’);rewrite(output); Readln(n,m); For i:=1 to n do Read(a[i]); For i:=m+1 to n do Begin K:=1;

For j:=1 to m do If a[j]

For i:=1 to m do

If a[i]>a[k] then k:=I; Writeln(a[k]); Close(input); Close(output); End.


noip普及组复赛模拟试题26(答案)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:上海交通大学继续教育学院计算机应用基础(二)第三次 word、excel

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: