trang chủ / đề bài / nb_ts10_26_e

Xây tháp

Đề bài

Mô tả

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 cạnh đáy 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.

Yêu cầu: Cho biết thông tin của các khối đá. Hãy tìm phương án xây dựng để tháp đạt được độ cao lớn nhất.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n (n≤104).
  • Trong n dòng tiếp theo, mỗi dòng chứa 3 số nguyên dương là kích thước của một khối đá (các kích thước không quá 255). Các khối đá được đánh số từ 1 theo trình tự xuất hiện.

Dữ liệu ra

  • Dòng 1: Ghi số s là độ cao tháp đạt được.
  • Dòng 2: Ghi số m là số lượng khối đá dùng để xây tháp.
  • m dòng tiếp theo ghi thông tin các khối đá xếp từ đáy tháp lên đến đỉnh tháp, mỗi dòng chứa 4 số theo thứ tự k,a,b và 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.

Nếu có nhiều phương án, in ra một phương án bất kỳ. Nếu chỉ đúng giá trị s ở dòng 1 thì được 50% số điểm của test.

Ràng buộc

  • 1≤n≤104.
  • Các kích thước là số nguyên dương không quá 255.

Subtasks

  • Subtask 1 (25% số điểm): Các khối đá đều có kích thước a=b=c.
  • Subtask 2 (25% số điểm): Các khối đá đều có 2 trong 3 kích thước là 1.
  • Subtask 3 (50% số điểm): Không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
6
7 5 5
4 4 8
4 2 2
5 1 5
4 2 7
5 5 5
13
4
1 5 7 5
6 5 5 5
4 5 5 1
3 2 4 2
Từ đáy lên: khối 1 (đáy 5×7, cao 5), khối 6 (đáy 5×5, cao 5), khối 4 (đáy 5×5, cao 1), khối 3 (đáy 2×4, cao 2). Tháp cao 5+5+1+2=13.
3
2 3 4
1 1 1
3 3 3
6
3
1 3 4 2
3 3 3 3
2 1 1 1
(Ví dụ bổ sung.) Dùng cả ba khối: 2+3+1=6.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0