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

Tàu đồ chơi

Đề bài

Mô tả

Có một đoàn tàu đồ chơi chạy trên mạng lưới đường ray gồm n nhà ga, đánh số từ 1 đến n. Tại mỗi thời điểm đoàn tàu đứng ở đúng một nhà ga và di chuyển vòng tròn: sau ga i (với 1i<n) đoàn tàu tới ga i+1, còn sau ga n thì quay lại ga 1. Mỗi lần di chuyển sang ga kế tiếp mất đúng 1 giây.

m viên kẹo cần được giao. Viên kẹo thứ i hiện đang ở ga ai và cần được đưa tới ga đích bi (với aibi).

Đoàn tàu có sức chứa vô hạn và tại một ga có thể dỡ xuống bao nhiêu viên kẹo tuỳ ý. Tuy nhiên, mỗi lần đoàn tàu rời khỏi một ga, nó chỉ có thể mang theo tối đa một viên kẹo được chất lên tại ga đó (bạn được tự chọn viên kẹo nào trong số các viên đang ở ga đó). Thời gian chất và dỡ kẹo được bỏ qua.

Với mỗi nhà ga, hãy tính thời gian nhỏ nhất mà đoàn tàu cần để giao hết tất cả các viên kẹo, nếu nó bắt đầu xuất phát từ ga đó.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số nhà ga và số viên kẹo.
  • Trong m dòng tiếp theo, dòng thứ i chứa hai số nguyên aibi: ga xuất phát và ga đích của viên kẹo thứ i.

Dữ liệu ra

In ra một dòng gồm n số nguyên cách nhau bởi dấu cách. Số thứ i là thời gian nhỏ nhất (tính bằng giây) mà đoàn tàu cần để giao hết mọi viên kẹo nếu xuất phát từ ga i.

Ràng buộc

  • 2n100
  • 1m200
  • 1ai,binaibi

Ví dụ

Input Output Giải thích
5 7
2 4
5 1
2 3
3 4
4 1
5 3
3 5
10 9 10 10 9 Với mỗi ga xuất phát ta tính thời gian tối ưu để giao hết 7 viên kẹo. Ví dụ xuất phát từ ga 2 cần 9 giây.
2 3
1 2
1 2
1 2
5 6 Cả 3 viên kẹo đều ở ga 1 và cần đưa sang ga 2. Xuất phát từ ga 1: chất viên thứ nhất, đi sang ga 2 (1 giây) và dỡ, quay về ga 1 (1 giây), lặp lại cho viên thứ hai và thứ ba. Viên cuối không cần quay về, tổng cộng 5 giây. Xuất phát từ ga 2 phải mất thêm 1 giây đi về ga 1 trước, nên là 6 giây.

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