Mạng xã hội

Đề bài

Mô tả

Polycarpus được giao một thử thách thực tập. Anh có log n yêu cầu truy cập mạng xã hội trong một ngày, mỗi yêu cầu chỉ có thời điểm phát sinh (định danh người dùng đã bị xóa). Một sự kiện đặc biệt là tại một thời điểm trong ngày, có đúng M người dùng cùng online — đây là kỷ lục.

Quy ước: nếu một người dùng gửi yêu cầu tại giây s thì người đó được coi là online tại các giây s,s+1,,s+T1. Khoảng thời gian online của một người dùng là hợp của tất cả khoảng [s,s+T1] ứng với các yêu cầu của người đó.

Hãy gán cho mỗi yêu cầu một định danh người dùng (nguyên dương) sao cho:

  • Tại bất kỳ thời điểm nào, số người dùng phân biệt đang online không vượt quá M.
  • Tồn tại ít nhất một thời điểm có đúng M người dùng phân biệt đang online (để đạt kỷ lục).
  • Tổng số người dùng phân biệt (số định danh khác nhau được dùng) là lớn nhất có thể.

Nếu không thể gán theo yêu cầu, in No solution.

Dữ liệu vào

Dòng đầu chứa ba số nguyên n, M, T.

n dòng tiếp theo, mỗi dòng chứa một thời điểm theo định dạng hh:mm:ss. Các thời điểm được cho theo thứ tự không giảm; có thể trùng nhau. Đảm bảo mọi thời điểm và cả các đoạn [s,s+T1] đều nằm trong cùng một ngày (từ 00:00:00 đến 23:59:59).

Dữ liệu ra

Nếu không có cách gán hợp lệ, in No solution.

Ngược lại, dòng đầu in R — số người dùng phân biệt lớn nhất có thể. n dòng sau, mỗi dòng in định danh của người dùng tương ứng với yêu cầu trong dữ liệu vào (số nguyên từ 1 đến R). Các yêu cầu của cùng một người phải có cùng định danh; các yêu cầu của những người khác nhau phải có định danh khác nhau. Nếu có nhiều đáp án, in một đáp án bất kỳ.

Ràng buộc

  • 1n,M20000
  • 1T86400

Ví dụ

Input Output Giải thích
4 2 10
17:05:53
17:05:58
17:06:01
22:39:47
3
1
2
2
3
Người 1 online [17:05:53,17:06:02], người 2 gửi cả yêu cầu thứ 2 và thứ 3 nên online [17:05:58,17:06:10], người 3 online [22:39:47,22:39:56]. Tại 17:06:01 có đúng M=2 người online.
1 2 86400
00:00:00
No solution Chỉ có một yêu cầu nên cao nhất chỉ có 1 người online, không thể đạt M=2.
5 2 40000
06:30:57
07:27:25
09:10:21
11:05:03
12:42:37
2
1
2
2
2
2
Người 1 online từ 06:30:57 trong 40000 giây. Yêu cầu thứ hai phát sinh trong khoảng đó nên thuộc người 2, đạt M=2. Các yêu cầu sau được gán cho người 2 để không vượt quá M.

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