Chào mừng bạn đến với Selfomy Hỏi Đáp, hãy Hỏi bài tập hoặc Tham gia ngay
0 phiếu
trong Tin học lớp 9 bởi thanhtrong ● Ban Quản Trị Thạc sĩ (6.2k điểm)

Có N khối đá hình hộp chữ nhật. Người ta muốn xây một cái tháp bằng cách chồng các khối đá này lên nhau. Để đảm bảo an toàn, các khối đá được đặt theo nguyên tắc:

+ Chiều cao của mỗi khối là kích thước nhỏ nhất trong ba kích thước

+ Các mép của các khối đươc đặt song song với nhau sao cho không có phần nào của khối nằm trên bị chìa ra ngoài so với khối nằm dưới.

Hãy tìm phương án xây dựng để tháp đạt được độ cao nhất.

Dữ liệu vào: Cho trong file TOWN.INP:

  • Dòng đầu tiên là số N
  • N dòng tiếp, mỗi dòng ghi 3 số nguyên dương là kích thước của một khối đá. Các khối đá đươc đánh số từ 1 theo trình tự xuất hiện trong file.

Kết quả: ghi ra file TOWN.OUT:

  • Dòng thứ nhất ghi số M là số lượng khối đá dùng để xây tháp
  • M dòng tiếp theo ghi các khối xếp từ đáy tháp lên đỉnh tháp, mỗi dòng gồm 4 số theo thứ tự K a b c, trong đó K là số hiệu khối đá, a là kích thước chọn làm đáy nhỏ, b là kích thước chọn làm đáy lớn, c là kích thước chọn làm chiều cao.

Các số trên một dòng trong các file được ghi cách nhau ít nhất một dấu cách. Giới hạn số khối đá không quá 5000 và các kích thước của các khối đá không quá 255.

Ví dụ:

TOWN.INP

TOWN.OUT

9

7 5 5

4 4 8

1 1 5

4 2 2

5 1 5

4 2 7

2 9 2

1 3 3

5 5 5

4

1 5 7 5

9 5 5 5

5 5 5 1

4 2 4 2


1 Câu trả lời

0 phiếu
bởi thanhtrong ● Ban Quản Trị Thạc sĩ (6.2k điểm)
đã sửa bởi thanhtrong ● Ban Quản Trị
 
Hay nhất
{*********************************************************************
* Program     :  TOWN    *
*********************************************************************}

{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+}
{$M 16384,0,655360}

uses crt;

const
   tfi='TOWN.INP';
   tfo='TOWN.OUT';
   NN=5000;
   maxN=5000;

type
   HH=record  name: integer; c: array[1..3] of byte; end;

var
   fi,fo: text;
   N: integer;
   Khoi: array[1..maxN] of HH;
   a: array[1..maxN] of LongInt;
   Tr: array[1..maxN] of integer;
   slx: integer;
   x: array[1..maxN] of LongInt absolute a;
   Hmax: LongInt;

procedure Sinhdl;
var ch: char;
    i: integer;
    u1,u2,u3: byte;
begin
   clrscr;
   writeln('Ban co tao file ',tfi,' (C/K)?');
   repeat ch:=readkey until upcase(ch) in ['C','K'];
   if upcase(ch)='K' then exit;
   randomize;
   N:=NN;
   assign(fi,tfi); rewrite(fi);
   writeln(fi,N);
   for i:=1 to N do
      begin
         u1:=random(200)+1;
         u2:=random(200)+1;
         u3:=random(200)+1;
         writeln(fi,u1,' ',u2,' ',u3);
      end;
   close(fi);
end;

procedure Docdl;
var i,k,l: integer;
    tg: byte;
begin
   assign(fi,tfi); reset(fi);
   readln(fi,N);
   for i:=1 to N do
      with khoi[i] do
         begin
            name:=i;
            read(fi,c[1],c[2],c[3]);
            for k:=1 to 2 do
               for l:=k+1 to 3 do
                   if c[k]r do inc(i);
      while DienTich(j)a[i]) then
            begin
               a[i]:=a[j]+Khoi[i].c[3];
               Tr[i]:=j;
            end;
      end;
end;

procedure XLB;
var u,i: integer;
begin
   u:=1;
   for i:=2 to n do
      if a[i]>a[u] then u:=i;
   Hmax:=a[u];
   slx:=0;
   repeat
      inc(slx);
      x[slx]:=u;
      u:=Tr[u];
   until u=-1;
end;

procedure Inkq;
var i: integer;
begin
   assign(fo,tfo); rewrite(fo);
   writeln(fo,slx);
   for i:=slx downto 1 do
    with Khoi[x[i]] do
       writeln(fo,name,' ',c[2],' ',c[1],' ',c[3]);
   close(fo);
end;

BEGIN
   {Sinhdl;}
   Docdl;
   XDB;
   XLB;
   Inkq;
END.

Các câu hỏi liên quan

+1 thích
1 trả lời
Trên hai đường thẳng song song L1 và L2 người ta đánh dấu trên mỗi đường N điểm. Các điểm trên đường thẳng L1 được đánh ... ; tăng dần. Ví dụ: WIRES.INP WIRES.OUT 9 2 5 3 8 7 4 6 9 1 5 2 3 4 6 9
đã hỏi 4 tháng 2, 2021 trong Tin học lớp 9 bởi thanhtrong ● Ban Quản Trị Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời
Có N người xếp hàng mua vé. Ta đánh số họ từ 1 đến N theo thứ tự đứng trong hàng. Thời gian phục vụ bán vé cho người thứ i là ti. ... qui ước ghi số 0) Ví dụ TICK.INP TICK.OUT 5 2 5 7 8 4 3 9 10 10 17 2 4
đã hỏi 2 tháng 2, 2021 trong Tin học lớp 9 bởi thanhtrong ● Ban Quản Trị Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời
Bưu cục Có một số làng nằm dọc theo một đường cao tốc. Đường cao tốc được biểu diễn bằng một trục số nguyên và vị trí mỗ ... một. Ví dụ: POST.INP POST.OUT 10 5 1 2 3 6 7 9 11 22 44 50 9 2 7 22 44 50
đã hỏi 13 tháng 7, 2021 trong Tin học lớp 9 bởi thanhtrong ● Ban Quản Trị Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời
Một người sử dụng INTERNET đặt yêu cầu nhận thông tin về một số chủ đề khác nhau từ một số địa chỉ truy nhập. Chủ của các ... ;t nhất cần thực hiện. Ví dụ: EMAIL.INP EMAIL.OUT 7 1 3 4 3 2 2 3 4
đã hỏi 4 tháng 2, 2021 trong Tin học lớp 9 bởi thanhtrong ● Ban Quản Trị Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời
Thể tích khối cầu ngoại tiếp hình hộp chữ nhật ABCD.A'B'C'D' có ba kích thước lần lượt là1, 2, 2 bằng: \(A. 36\pi . \) \(B. 9\pi .\) \(C. 27\pi \) \(D. \frac{9\pi }{2} \)
đã hỏi 22 tháng 11, 2020 trong Toán lớp 12 bởi nguyenlengoc070902613 ● Cộng Tác Viên Thạc sĩ (8.4k điểm)
0 phiếu
1 trả lời
Một cái bể hình hộp chữ nhật có các kích thước trong lòng bể như sau chiều dài 4 m chiều rộng bằng 4/5 chiều dài ... đến 63% thể tích bể tính thể tích phần bể chưa có nướ
đã hỏi 16 tháng 4, 2022 trong Khác bởi Khang1000 Tiến sĩ (29.7k điểm)
0 phiếu
1 trả lời
+2 phiếu
1 trả lời
Hãy tìm ra cách người Ai Cập chuyển đá khổng lồ đi 800km xây kim tự tháp,hãy nêu nhận xét.
đã hỏi 27 tháng 9, 2017 trong Khác bởi vinhbnlc12 Thần đồng (1.2k điểm)
+3 phiếu
2 câu trả lời
Hãy tìm ra cách người Ai Cập chuyển đá khổng lồ đi 800km xây kim tự tháp
đã hỏi 26 tháng 9, 2017 trong Khác bởi Tí Vua Đệ Nhất Tiến sĩ (28.1k điểm)
  1. monmon70023220

    631 Điểm

  2. Darling_274

    160 Điểm

  3. minhquanhhqt160

    113 Điểm

  4. tngnhatganh117

    94 Điểm

Phần thưởng hằng tháng
Hạng 1: 200.000 đồng
Hạng 2: 100.000 đồng
Hạng 3: 50.000 đồng
Hạng 4: 20.000 đồng
Phần thưởng bao gồm: mã giảm giá Shopee, Nhà Sách Phương Nam, thẻ cào cùng nhiều phần quà hấp dẫn khác sẽ dành cho những bạn tích cực nhất của tháng. Xem tại đây
Bảng xếp hạng cập nhật 30 phút một lần
...