#898. BANDWIDTH - Băng thông

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Công ty Virtual Net (VN) đang xây dựng hệ thống tính toán hiệu suất cao. Hệ thống này có một máy chủ (được đánh số là 0 ) và 𝑛 máy tính (được đánh số từ 1, 2, …, 𝑛 cũng là thứ tự các máy tính được kết nối vào hệ thống). Khi máy tính thứ 𝑖 kết nối vào hệ thống thì máy tính này phải kết nối với một máy tính 𝑗 nào đó đã được kết nối trong hệ thống và phải đảm bảo máy tính 𝑖 hoạt động với hiệu suất cao nhất. Lúc này máy tính thứ 𝑖 chỉ có thể nhận dữ liệu trực tiếp từ máy tính 𝑗 .

Mỗi một máy tính 𝑖 có một băng thông 𝑏_𝑖 đó là số lượng byte tối thiểu mà nó nhận được trong 1 giây để có thể tính toán với hiệu suất cao nhất. Khi một máy tính 𝑖 kết nối với máy tính 𝑗 thì máy 𝑗 có thể truyền dữ liệu đến máy tính 𝑖 nếu 𝑏_𝑗 ≥ 𝑏_𝑖 , ngược lại máy 𝑗 phải tăng băng thông lên 𝑏_𝑖 mới đảm bảo cho việc truyền dữ liệu.

Trong test ví dụ :

  • Máy chủ (có 𝑏_0 = 50 ), khi kết nối vào hệ thống thì băng thông truyền đến nó là 50 ;
  • Khi máy số 1 (có 𝑏_1 = 45 ) kết nối với máy chủ, lúc này máy chủ có thể đảm bảo băng thông truyền đến máy 1 45 𝑏_0 > 𝑏_1 ;
  • Khi máy tính số 2 (có 𝑏_2 = 60 ) kết nối với máy chủ, vì 𝑏_0 < 𝑏_2 nên máy chủ không thể truyền băng thông cho máy số 2 lúc này 𝑏_0 phải tăng lên 60 . Như vậy khi kết nối máy số 2 với máy chủ thì phải tăng băng thông cho 1 máy tính (là máy chủ);
  • Khi máy số 3 (có 𝑏_3 = 40 ) kết nối với máy số 1 , vì 𝑏_1 > 𝑏_3 nên máy số 1 có thể đảm bảo truyền băng thông đến máy số 3 ;
  • Khi máy số 4 (có 𝑏_4 = 55 ) kết nối với máy số 3 , vì 𝑏_3 < 𝑏_4 nên 𝑏_3 phải tăng lên 55 . Khi đó máy số 1 (mà máy số 3 đang kết nối) phải tăng 𝑏_1 lên 55 . Lúc này máy chủ có 𝑏_0 = 60 có thể đảm bảo băng thông truyền đến máy số 1 . Như vậy khi kết nối máy số 4 với máy số 3 thì phải tăng băng thông cho 2 máy tính (máy số 3 và máy số 1 ) lên 55

Ban giám đốc muốn biết khi kết nối mỗi máy tính vào hệ thống thì có bao nhiêu máy tính phải tăng băng thông.

Yêu cầu: Cho trước hệ thống máy tính gồm máy chủ và 𝑛 máy tính, trong đó máy tính thứ i có băng thông tối thiểu là 𝑏_𝑖 khi kết nối với máy tính 𝑗 trong hệ thống, hãy cho biết số lượng máy tính phải tăng băng thông.

Dữ liệu:

  • Dòng đầu tiên chứa số nguyên 𝑛\ (1 ≤ 𝑛 ≤ 3\times 10^5) ;
  • Dòng thứ hai chứa băng thông của máy chủ;
  • Dòng thứ 𝑖 trong 𝑛 dòng tiếp theo chứa hai số nguyên dương 𝑏_𝑖 𝑗 ( 𝑏_𝑖 là băng thông tối thiểu của máy tính thứ 𝑖 , máy tính 𝑖 được kết nối với máy tính 𝑗 ).

Kết quả:

  • Ghi ra 𝑛 dòng, dòng thứ 𝑖 ghi một số nguyên là số lượng máy tính phải tăng băng thông khi kết nối máy tính thứ 𝑖 vào hệ thống.

Ví dụ:

Dữ liệu:

7
50
45 0
60 0
40 1
55 3
70 4
63 2
63 2

Kết quả:

0
1
0
2
4
1
0

Giới hạn:

  • Subtask \#1: 30\% số test có 1 ≤ n ≤ 5000 ;
  • Subtask \#2: 30\% số test có 5000 < n ≤ 50000 ;
  • Subtask \#3: 40\% số test có 50000 < 𝑛 ≤ 300000 .