Khắc Hiếu vừa đậu đại học, cậu ra Hà Nội và gặp anh Khánh Hòa – một thành viên cũ của đội tuyển quốc gia môn Tin học. Hiếu muốn tìm hiểu về các bến xe Buýt ở Hà Nội còn Hòa thì biết rất rõ về các bến xe và số lượng xe của các bến xe. Hà Nội có N bến xe Buýt được đánh số từ 1 đến N, Hòa đố Hiếu: Hãy chọn trong N bến xe Buýt một số xe sao cho tổng số xe của 3 bến bất kỳ được chọn không lớn hơn tổng số xe của các bến còn lại và số lượng bến xe được chọn là nhiều nhất. Phần thưởng là một chuyyến dạo chơi bằng xe Buýt để ngắm thành phố Hà Nội. Bạn hãy giúp Hiếu.
Dữ liệu vào: từ file văn bản BUYT.INP
- Dòng đầu tiên ghi số N cho biết số bến xe Buýt (4≤ N≤104)
- Dòng tiếp theo ghi N số nguyên dương A1 ... AN (Ai là số lượng xe của bến xe thứ i, Ai≤102).
Dữ liệu ra: Ghi vào file văn bản BUYT.OUT
- Dòng duy nhất ghi số lượng bến xe được chọn.
Các số trên một dòng ghi cách nhau bởi một dấu cách.
Mình đã làm được rồi nhưng mình text bộ text này mình nghi nó sai với đề bài
5
5 6 7 8 9
out = 3 giải thích giúp mình bộ text trên dúng hay sai
Dữ liệu vào: từ file văn bản BUYT.INP
- Dòng đầu tiên ghi số N cho biết số bến xe Buýt (4≤ N≤104)
- Dòng tiếp theo ghi N số nguyên dương A1 ... AN (Ai là số lượng xe của bến xe thứ i, Ai≤102).
Dữ liệu ra: Ghi vào file văn bản BUYT.OUT
- Dòng duy nhất ghi số lượng bến xe được chọn.
Các số trên một dòng ghi cách nhau bởi một dấu cách.
HTML:
const
nmax=100000;
var a:array[1..nmax]of longint;
n:longint;
procedure enter;
var i:longint;f:text;
begin
assign(f,’BUYT.inp’);Reset(f);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
Close(f);
end;
procedure quicksort(l,h:longint);
var i,j,x,tg:longint;
begin
i:=l;
j:=h;
x:=a[(l+h) shr 1];
repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if i<=j then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
inc(i); dec(j);
end;
until i>j;
if j>l then quicksort(l,j);
if i<h then quicksort(i,h);
end;
procedure main;
var i:longint;
sum:int64;
f:text;
begin
assign(f,’BUYT.out’);
rewrite(f);
sum:=0;
for i:=1 to n do
sum:=sum+a[i];
i:=n;
while i>3 do
if (a[i]+a[i-1]+a[i-2])<=(sum shr 1) then break
else dec(i);
write(f,'so xe chon duoc nhieu nhat la: ',i);
Close(f);
end;
BEGIN
enter;
quicksort(1,n);
main;
readln
5
5 6 7 8 9
out = 3 giải thích giúp mình bộ text trên dúng hay sai
Sửa lần cuối: