Chuẩn bị tiệc 2

Đề bài

Mô tả

Đầu bếp vừa nấu xong n món ăn: món thứ i gồm ai gam cá và bi gam thịt.

Ban tổ chức tiệc coi hai món ijgiống nhau nếu đồng thời ai=ajbi=bj (cùng lượng cá và cùng lượng thịt). Độ đa dạng của một tập món ăn là số lượng món khác nhau trong tập đó. Độ đa dạng càng nhỏ càng tốt.

Để giảm độ đa dạng, một người nếm thử được mời đến. Với mỗi món, anh ta sẽ ăn đúng mi gam thức ăn. Với từng món, anh ta tự quyết định ăn bao nhiêu gam cá và bao nhiêu gam thịt, miễn sao tổng lượng ăn từ món i đúng bằng mi gam. Nghĩa là nếu anh ăn xi gam cá và yi gam thịt từ món i thì phải có 0xiai, 0yibixi+yi=mi.

Sau khi ăn, món i còn lại (aixi) gam cá và (biyi) gam thịt. Hãy xác định người nếm thử nên ăn bao nhiêu cá và bao nhiêu thịt từ mỗi món để độ đa dạng của các món còn lại là nhỏ nhất có thể. Nếu có nhiều cách, in ra một cách bất kỳ.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng bộ dữ liệu.
  • Mỗi bộ dữ liệu được phân tách với bộ trước bởi một dòng trống, rồi đến một dòng chứa số nguyên n — số món ăn; tiếp theo là n dòng, dòng thứ i chứa ba số nguyên ai, bi, mi.

Dữ liệu ra

Với mỗi bộ dữ liệu:

  • Dòng đầu in độ đa dạng nhỏ nhất đạt được.
  • Tiếp theo in n dòng, dòng thứ i chứa hai số nguyên xiyi (0xiai; 0yibi; xi+yi=mi) — số gam cá và số gam thịt người nếm thử ăn từ món i.

Nếu có nhiều cách đạt giá trị nhỏ nhất, in ra cách bất kỳ.

Ràng buộc

  • 1t104
  • 1n2·105
  • 0ai,bi106
  • 0miai+bi
  • Tổng tất cả các giá trị n trên mọi bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
5

3
10 10 2
9 9 0
10 9 1

2
3 4 1
5 1 2

3
7 2 5
6 5 4
5 5 6

1
13 42 50

5
5 7 12
3 1 4
7 3 7
0 0 0
4 1 5
1
1 1
0 0
1 0
2
0 1
1 1
2
3 2
0 4
1 5
1
8 42
2
5 7
3 1
4 3
0 0
4 1
Bộ 1: cả ba món đều còn lại (9,9) nên độ đa dạng là 1. Bộ 2: món 1 còn (3,3), món 2 còn (4,0) — tổng còn lại khác nhau (64) nên không thể trùng, độ đa dạng tối thiểu là 2. Bộ 3: món 1 và món 3 cùng còn (4,0), món 2 còn (6,1)2 loại.
3

8
1000000 1000000 2000000
100000 100000 200000
10000 10000 20000
1000 1000 2000
100 100 200
10 10 20
1 1 2
0 0 0

2
1000000 1000000 2000000
1000000 1000000 0

2
1000000 0 1000000
0 1000000 1000000
1
1000000 1000000
100000 100000
10000 10000
1000 1000
100 100
10 10
1 1
0 0
2
1000000 1000000
0 0
1
1000000 0
0 1000000
Bộ 1: mọi món đều bị ăn hết (mi=ai+bi) nên đều còn (0,0) → độ đa dạng 1. Bộ 2: món 1 còn (0,0), món 2 không bị ăn nên còn (1000000,1000000)2 loại. Bộ 3: cả hai món đều còn (0,0)1 loại.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0