Máy tính của Hải Ly

Đề bài

Mô tả

Có một thiết bị tính toán giải các bài toán lần lượt, từng bài một. Sau khi giải xong một bài và trước khi sang bài tiếp theo, thiết bị phải cấp phát hoặc giải phóng tài nguyên. Thao tác giải phóng tài nguyên rất chậm, vì vậy ta muốn dãy bài toán được sắp xếp sao cho số cặp kề nhau "xấu" là nhỏ nhất, trong đó một cặp (p,q) với p đứng ngay trước q được gọi là xấu nếu p yêu cầu nhiều tài nguyên hơn q.

n nhà khoa học, nhà khoa học thứ i mang ki bài toán cần tính, đánh số từ 1 đến ki. Mỗi bài toán cần một lượng tài nguyên ai,j (đối với bài j của nhà khoa học i). Các bài của cùng một nhà khoa học phải được giải theo đúng thứ tự 1,2,,ki.

Để giảm kích thước dữ liệu vào, dãy ai,1,ai,2,,ai,ki được sinh ra theo công thức: cho trước ai,1, xi, yi, mi; với mọi j từ 2 đến ki:

ai,j=(ai,j1·xi+yi)modmi.

Hãy sắp xếp tất cả các bài toán của tất cả các nhà khoa học thành một dãy duy nhất sao cho:

  • Thứ tự các bài của mỗi nhà khoa học được giữ nguyên (bài j của nhà khoa học i phải đứng trước bài j+1 của cùng nhà khoa học đó).
  • Số cặp kề nhau xấu trong dãy là nhỏ nhất có thể.

In ra số cặp xấu nhỏ nhất, và nếu tổng số bài không vượt quá 200000, in thêm thứ tự các bài toán trong cách sắp xếp tối ưu.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số nhà khoa học.
  • Mỗi dòng trong n dòng tiếp theo chứa năm số nguyên ki,ai,1,xi,yi,mi — số bài của nhà khoa học i và các tham số sinh dãy.

Dữ liệu ra

  • Dòng đầu: số cặp kề nhau xấu nhỏ nhất.
  • Nếu tổng ki200000, in thêm ki dòng, mỗi dòng gồm hai số nguyên: lượng tài nguyên của bài và chỉ số nhà khoa học mang bài đó, theo đúng thứ tự sắp xếp tối ưu.

Nếu có nhiều cách sắp xếp tối ưu, in ra cách bất kỳ.

Ràng buộc

  • 1n5000
  • 1ki5000
  • 0ai,1<mi109
  • 1xi,yi109

Ví dụ

Input Output Giải thích
2
2 1 1 1 10
2 3 1 1 10
0
1 1
2 1
3 2
4 2
Nhà khoa học 1 có dãy 1,2; nhà khoa học 2 có dãy 3,4. Ghép lại theo thứ tự 1,2,3,4 — dãy không giảm, không có cặp xấu.
2
3 10 2 3 1000
3 100 1 999 1000
2
10 1
23 1
49 1
100 2
99 2
98 2
Dãy của nhà khoa học 1 là 10,23,49 (tăng); dãy của nhà khoa học 2 là 100,99,98 (giảm). Tối thiểu 2 cặp xấu (giữa 100999998).

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