THPT Chuyên Vị Thanh

Số 04 Đường Đồ Chiểu TX Vị Thanh - Tỉnh Hậu Giang


You are not connected. Please login or register

Bài giải CLB kì 2 của Lương Văn Đô 11TL

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Admin


Admin
Admin
Const fi = 'daycon.inp';
fo = 'daycon.oup';
var
a: array[0..1001] of longint;
tong: longint;
f,g : text;
n : integer;
Procedure docdulieu;
var i: integer;
begin
assign(f,fi); reset(f);
readln(f,n);
tong := 0;
for i := 1 to n do
begin
read(f,a[i]); tong := tong + a[i] ;
end;
close(f);
end;
Procedure sapxep;
var i,j : integer;
tg : longint;
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] > a[j] then
begin
tg := a[i]; a[i] := a[j]; a[j] := tg;
end
end;
Procedure xuli;
var i, kiluc : integer;
begin
kiluc := n;
sapxep;
i := n;
while i > 3 do
if a[i] + a[i-1] + a[i-2] > tong - (a[i] + a[i-1] + a[i-2]) then
begin
tong := tong - a[i];
dec(i); dec(kiluc);
end
else break;
assign(g,fo); rewrite(g);
if kiluc > 3 then writeln(g,kiluc) else write(g,0);
close(g);
end;
BEGIN
Docdulieu;
xuli;
END.
============================================
Admin đã có chỉnh sửa đôi chút!

Xem lý lịch thành viên

Ç £ ø v e r

avatar
Thành viên cấp 4
Thành viên cấp  4
Ghê chùi , hem hỉu zì chơn =))


_________________
Nhẹ nhàng... là gió ...Vô tình.. là gió ... Lặng lẽ... là gió..
Từng trải... là gió ...Phiêu diêu... là gió...Trống rỗng...Là Gió

Xem lý lịch thành viên http://vn.myblog.yahoo.com/onlylove_onlyheart_for_onlyyou

3 em cũng zậy on Mon Nov 10, 2008 12:24 pm

::Durian::

avatar
Thành viên cấp 4
Thành viên cấp  4
hem bik gì lun... Very Happy

Xem lý lịch thành viên http://vn.myblog.yahoo.com/sam-kurai

Khách v


Khách viếng thăm
Giải thích dùm luôn nè:
Const fi = 'daycon.inp';
fo = 'daycon.oup';
var
a: array[0..1001] of longint;
tong: longint;
f,g : text;
n : integer;
Đoạn này là phần khai báo cho chương trình chính, gồm các biến toàn cục, các file fi, fo là các file input, output tương ứng! Không biết các mem có hiểu input,output không nữa - hẽm hiểu thì lỗi thầy dạy tin học ấy!
Procedure docdulieu;
var i: integer;
begin
assign(f,fi); reset(f);
readln(f,n);
tong := 0;
for i := 1 to n do
begin
read(f,a[i]); tong := tong + a[i] ;
end;
close(f);
end;
Đoạn này thì đọc file input gán các con số nguyên (Integer) vào mảng a (array), có tính tổng các con số!
Procedure sapxep;
var i,j : integer;
tg : longint;
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] > a[j] then
begin
tg := a[i]; a[i] := a[j]; a[j] := tg;
end
end;
Đoạn trên chẳng qua là sắp xếp mảng a không giảm - lưu ý không giảm chứ hẽm phải tăng nhé!
Procedure xuli;
var i, kiluc : integer;
begin
kiluc := n;
sapxep;
i := n;
while i > 3 do
if a[i] + a[i-1] + a[i-2] > tong - (a[i] + a[i-1] + a[i-2]) then
begin
tong := tong - a[i];
dec(i); dec(kiluc);
end
else break;
assign(g,fo); rewrite(g);
if kiluc > 3 then writeln(g,kiluc) else write(g,0);
close(g);
end;
Đoạn này là đoạn ăn tiền nè, xử lí các dãy con bằng quy tắc đã cho của đề bài - tất nhiên bạn Đô gì đó giải như vậy là chạy ào ào rồi! Hợp lí.
==============================================
Góp ý 1 chổ nhỏ: bạn dùng biến trung gian để đổi chổ! Có thể bạn biết cách không dùng biến trung gian mà!
Thôi, bấy nhiêu thôi! Muốn gì thì bé TheFireStar và Hồng Thanh sẽ bình luận tiếp! Vậy nhé!

TheFireStar

avatar
Thành viên cấp 4
Thành viên cấp  4
Không hiểu j hết làm sao mòa bình loạn


_________________


4rum ta ngày càng load lâu...

Xem lý lịch thành viên http://www.firestar.co.cc

Sponsored content


Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết