Tin học Pascal

kidaoko1412minion

Học sinh mới
Thành viên
29 Tháng một 2019
3
1
6
18
Phú Yên
THCS Hoàng Văn Thụ
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
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.

Kỳ thi học sinh giỏi các môn văn hóa lớp 9 năm học 2018-2019 của tỉnh Phú Yên, được tổ chức vào ngày 01/3/2019 tại 3 điểm thi trong thành phố Tuy Hòa (đặt tại các trường: THPT Nguyễn Huệ, THPT Nguyễn Trãi, THCS Hùng Vương). Có N huyện đăng ký dự thi, hội đồng thi quy định mỗi huyện là 1 đoàn dự thi. Đoàn dự thi thứ i cách thành phố Tuy Hòa lần lượt là di, đơn vị Km(i=1,2,…,N). Hội đồng thi đã chuẩn bị M xe, các xe được đánh số từ 1 đến M (M>=N) để phục vụ cho việc đưa đón các đoàn. Xe thứ j có mức tiêu thụ xăng là vj, đơn vị thể tích/Km (j=1,2,..,M)
* Yêu cầu: Hãy chọn N xe để phục vụ việc đưa các đoàn đi thi, mỗi xe chỉ phục vụ một đoàn, sao cho tổng chi phí xăng cần sử dụng là ít nhất. Biết rằng mỗi xe có một mức tiêu thụ xăng khác nhau.
+ Dữ liệu vào: từ tệp văn bản DITHI.INP, gồm:
- Dòng 1: chứa 2 số nguyên dương N, M (N≤M≤200)
Trang 03
- Dòng 2: chứa các số nguyên dương d1,d2…,dN. (di≤1000)
- Dòng 3: chứa các số nguyên dương v1,v2,..,vM. (vj≤1000)
+ Dữ liệu ra: ghi vào tệp văn bản DITHI.OUT gồm:
- Dòng 1: chứa số K, là tổng lượng xăng cần dùng cho việc đưa các đoàn đi thi.(Không tính lượt về).
- Dòng 2:Ghi chỉ số xe phục vụ đoàn thứ i (i=1,2,…,N). Mỗi số cách nhau 1 khoảng trống.
BÀI LÀM
program DITHI;
var X,C,T,T2,S3:array[0..200] of longint;
n,m,i,j,s,k,w,tong,q:longint;
procedure HD(var a,b:longint);
var t:longint;
begin
t:=a;
a:=b;
b:=t;
end;
begin
ASSIGN(INPUT, 'DITHI.INP');RESET(INPUT);
ASSIGN(OUTPUT,'DITHI.OUT');REWRITE(OUTPUT);
read(n);
readln(m);
for i:=1 to n do
begin
read(C);
T2:=C;
end;
readln;
for i:=1 to m do
begin
read(X);
T[X]:=X;
end;
for i:=1 to 200-1 do
for j:=i+1 to 200 do
if T>T[j] then HD(T,T[j]);
for i:=1 to 200 do
if T<>0 then
begin k:=i;break;end;
for i:=1 to n do
for j:=i+1 to n do
if C<C[j] then HD(C,C[j]);
w:=k;
for i:=1 to n do
begin
for j:=n+k-1 downto w do
C[j]:=C;
T2[j]:=T2;
w:=w+1;
end;
for i:=k to k+n-1 do
tong:=tong+C*T;
writeln(tong);
q:=1;
for i:=k to k+n-1 do
for j:=1 to m do
begin
if T=X[j] then S3:=j;
end;
for i:=k to k+n-1 do
for j:=k to k+n-1 do
begin
if C=T2[j] then begin HD(S3,S3[j]);HD(C,C[j]);end;
end;
for i:=k to k+n-1 do write(S3,' ');
end.
 
Top Bottom