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. 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库noip普及组复赛模拟试题26(答案)(2)在线全文阅读。
相关推荐: