trang chủ / bài tập / greenhse

Hiệu Ứng Nhà Kính

Đề bài

Mô tả

Emuskald có một nhà kính dài vô tận, trồng n cây thuộc m loài khác nhau, đánh số từ 1 đến m. Nhà kính được xem như một đường thẳng vô hạn, mỗi cây nằm tại một điểm.

Anh muốn đặt m1 vách ngăn để chia nhà kính thành m phần liên tiếp (đánh số 1,2,,m từ trái sang phải) sao cho tất cả cây thuộc loài i đều nằm trong phần thứ i. Các vách có thể đặt tại vị trí thực bất kỳ.

Vì không phải lúc nào cũng đặt được, Emuskald được phép đào lên một số cây và trồng lại tại vị trí thực bất kỳ (miễn vị trí đó chưa có cây). Hãy tìm số cây ít nhất cần phải trồng lại.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • n dòng tiếp theo, mỗi dòng gồm một số nguyên si và một số thực xi — loài và vị trí của cây thứ i. Mỗi xi có không quá 6 chữ số thập phân.

Các giá trị xi đôi một khác nhau, mỗi loài xuất hiện ít nhất một lần, và các cây được liệt kê theo thứ tự tăng dần của xi.

Dữ liệu ra

In ra một số nguyên duy nhất — số cây ít nhất phải trồng lại.

Ràng buộc

  • 1n,m5000, nm.
  • 1sim.
  • 0xi109.

Ví dụ

Input Output Giải thích
3 2
2 1
1 2.0
1 3.100
1 Trồng lại cây loài 2 sang bên phải hai cây loài 1.
3 3
1 5.0
2 5.5
3 6.0
0 Các loài đã ở đúng thứ tự, không cần trồng lại.
6 3
1 14.284235
2 17.921382
1 20.328172
3 20.842331
1 25.790145
1 27.204125
2 Giữ lại dãy loài 1,1,1,1 (bốn cây loài 1 theo thứ tự); hai cây loài 23 phải trồng lạ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