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
1.5k lượt xem
thanhtrong trong Tin học lớp 9 bởi 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
thanhtrong bởi Thạc sĩ (6.2k điểm)
đã sửa bởi
 
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 1.1k lượt xem
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 Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời 848 lượt xem
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 Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời 813 lượt xem
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 Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời 260 lượt xem
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 Thạc sĩ (6.2k điểm)
0 phiếu
1 trả lời 1.7k lượt xem
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 Thạc sĩ (8.4k điểm)
0 phiếu
1 trả lời 642 lượt xem
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 Phó giáo sư (31.4k điểm)
0 phiếu
1 trả lời 223 lượt xem
+2 phiếu
1 trả lời 904 lượt xem
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 1.1k lượt xem
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)

HOT 1 giờ qua

  1. trannhat900trannhat900

    52948 Điểm

  2. phamngoctienpy1987844phamngoctienpy1987844

    50728 Điểm

  3. vxh2k9850vxh2k9850

    35980 Điểm

  4. Nqoc_bakaNqoc_baka

    34614 Đ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
...