Lập trình đơn giản

HN

Giả sử P={P1,P2,...,Pn} là một hoán vị của 1,2,...,n. Bảng nghịch thế của hoán vị P là dãy T={T1,T2,...,Tn} trong đó Ti bằng số lượng các phần tử trong hoán vị P, đứng trước i và lớn hơn i.

Yêu cầu: Viết chương trình tìm lại hoán vị P khi biết bảng nghịch thế T.

Dữ liệu: cho trong file NGHICHTH.INP gồm k dòng, mỗi dòng chứa một bảng nghịch thế.

Kết quả: ghi ra màn hình và ra file NGHICHTH.OUT gồm k dòng, mỗi dòng ghi hoán vị tìm được.

Ví dụ:

NGHICHTH.INP NGHICHTH.OUT

2 1 0 0 0

2 3 6 4 0 2 2 1 0

3 2 1 4 5

5 9 1 8 2 6 4 7 3

NT
7 tháng 3 2020 lúc 23:44

var i,n,d:word;
t,b,kt:array[1..10] of word;

procedure nhap;
var f:text;
begin
assign(f,'dulieu.inp');
reset(f);
readln(f,n);
for i:=1 to n do read(f,t[i]);
close(f);
fillchar(b,sizeof(kt),0);
end;

procedure tailap;
var i,j,d:integer;
begin
for i:=1 to n do
begin
d:=0;
for j:=1 to n do
begin
if b[j]=0 then d:=d+1;
if d=t[i]+1 then break;
end;
b[j]:=i;
end;
end;

BEGIN
nhap;
tailap;
for i:=1 to n do write(b[i],' ');
readln
END.

Bình luận (0)
 Khách vãng lai đã xóa

Các câu hỏi tương tự
IS
Xem chi tiết
SN
Xem chi tiết
H24
Xem chi tiết
H24
Xem chi tiết
HN
Xem chi tiết
LV
Xem chi tiết
HN
Xem chi tiết
TH
Xem chi tiết
NN
Xem chi tiết