Chắc suất Đại học top - Giữ chỗ ngay!! ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.
đoạn code đây ạ
const
nhap='bang2.inp';
xuat='bang2.out';
var
m,n,i,j,t,min,d:longint; e:byte;
a,b:array[0..100000] of int64;k:qword;
begin
assign(input,nhap);reset(input);
assign(output,nhap);rewrite(output);
readln(m,n);a[0]:=0;t:=0;e:=0;
for i:=1 to m do
begin
read(a);
d:=d+a; end;
d:=trunc(d/n);
for i:=1 to m do begin
k:=a[i-1];t:=t+1;
for j:=i to m do begin
k:=k+a[j];
if k>d then begin b[t]:=k;break;end;
if k=d then e:=1;end;end;
min:=b[1];
for i:=2 to t do
if min>b then b:=min;
if e=0 then write(min)
else begin
k:=0;e:=0;
for i:=1 to m do begin
k:=k+a;
if k>=d then begin e:=e+1;k:=a;end;end;
if e=n then write(d)
else write(min);end;
close(input);close(output);end.
const
nhap='bang2.inp';
xuat='bang2.out';
var
m,n,i,j,t,min,d:longint; e:byte;
a,b:array[0..100000] of int64;k:qword;
begin
assign(input,nhap);reset(input);
assign(output,nhap);rewrite(output);
readln(m,n);a[0]:=0;t:=0;e:=0;
for i:=1 to m do
begin
read(a);
d:=d+a; end;
d:=trunc(d/n);
for i:=1 to m do begin
k:=a[i-1];t:=t+1;
for j:=i to m do begin
k:=k+a[j];
if k>d then begin b[t]:=k;break;end;
if k=d then e:=1;end;end;
min:=b[1];
for i:=2 to t do
if min>b then b:=min;
if e=0 then write(min)
else begin
k:=0;e:=0;
for i:=1 to m do begin
k:=k+a;
if k>=d then begin e:=e+1;k:=a;end;end;
if e=n then write(d)
else write(min);end;
close(input);close(output);end.