Làm sao để có câu trả lời hay nhất?
13/01/2025
13/01/2025
Giải bài toán chọn 4 vận động viên chạy nhanh nhất bằng Pascal
Hiểu bài toán
Input: Số lượng vận động viên và thời gian chạy của từng vận động viên.
Output: Số báo danh của 4 vận động viên chạy nhanh nhất.
Giải thuật
Đọc dữ liệu: Đọc số lượng vận động viên n và thời gian chạy của từng vận động viên từ file BL3.INP.
Tạo mảng: Tạo một mảng để lưu trữ cả số báo danh và thời gian chạy của từng vận động viên.
Sắp xếp: Sắp xếp mảng theo thứ tự tăng dần của thời gian chạy.
In kết quả: In ra 4 phần tử đầu tiên của mảng đã sắp xếp (tương ứng với 4 vận động viên chạy nhanh nhất).
Code Pascal
Delphi
program BL3;
type
VậnĐộngViên = record
soBaoDanh: integer;
thoiGian: integer;
end;
MangVĐV = array[1..1000] of VậnĐộngViên;
var
n, i, j: integer;
a: MangVĐV;
f1, f2: text;
procedure docDuLieu;
var
i: integer;
begin
assign(f1, 'BL3.INP'); reset(f1);
readln(f1, n);
for i := 1 to n do
begin
readln(f1, a[i].thoiGian);
a[i].soBaoDanh := i;
end;
close(f1);
end;
procedure sapXep;
var
i, j: integer;
tam: VậnĐộngViên;
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i].thoiGian > a[j].thoiGian then
begin
tam := a[i];
a[i] := a[j];
a[j] := tam;
end;
end;
procedure ghiKetQua;
var
i: integer;
begin
assign(f2, 'BL3.OUT'); rewrite(f2);
for i := 1 to 4 do
write(f2, a[i].soBaoDanh, ' ');
close(f2);
end;
begin
docDuLieu;
sapXep;
ghiKetQua;
end.
13/01/2025
uses crt; var n,k:int64; i,j:longint; a,b:array[1..100000] of int64; procedure qsort(x,y:int64); var i,j:longint; r,tam:int64; begin i:=x; j:=y; r:=a[(x+y) div 2]; while i<j do begin while a[i]<r do inc(i); while a[j]>r do dec(j); if i<=j then begin tam:=a[i]; a[i]:=a[j]; a[j]:=tam; tam:=b[i]; b[i]:=b[j]; b[j]:=tam; inc(i); dec(j); end; end; if x<j then qsort(x,j); if i<y then qsort(i,y); end; begin assign(input,'bl3.inp');reset(input); assign(output,'bl3.out');rewrite(output); readln(n); for i:=1 to n do begin readln(a[i]); b[i]:=i; end; qsort(1,n); for i:=1 to 4 do write(b[i],' '); readln; end.
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
Top thành viên trả lời