Hướng dẫn

Xem PDF

Điểm: 10 Thời gian: 10.0s Bộ nhớ: 8M Input: bàn phím Output: màn hình

Tại công ty Ailearndn có n lập trình viên, lập trình viên thứ i có trình độ kỹ năng là r[i].
Một lập trình viên a có thể trở thành người hướng dẫn của lập trình viên b nếu và chỉ nếu thỏa mãn hai điều kiện:

  • r[a] > r[b] (kỹ năng của a cao hơn kỹ năng của b);
  • Hai người không đang cãi nhau.
    Bạn biết kỹ năng của từng lập trình viên và danh sách các cặp lập trình viên đang cãi nhau.
    Hãy xác định, với mỗi lập trình viên i, có bao nhiêu lập trình viên mà anh/cô ấy có thể làm người hướng dẫn.
    Input
    Dòng đầu tiên chứa hai số nguyên n và k:n: số lượng lập trình viên.k: số lượng cặp lập trình viên đang cãi nhau.(2 ≤ n ≤ 200000, 0 ≤ k ≤ min(2000, n*(n−1)/2))
    Dòng thứ hai chứa dãy số nguyên r1, r2, …, rn(1 ≤ ri ≤ 10^9) — trong đó ri là trình độ kỹ năng của lập trình viên thứ i.
    Mỗi trong k dòng tiếp theo chứa hai số nguyên x y (1 ≤ x, y ≤ n, x ≠ y)biểu diễn rằng lập trình viên x và y đang cãi nhau.
    Các cặp là vô hướng, nghĩa là nếu x cãi nhau với y thì y cũng cãi nhau với x.Đảm bảo rằng mỗi cặp chỉ xuất hiện một lần.
    Output
    In ra n số nguyên ans1 ans2 … ansn,
    trong đó ansi là số lượng lập trình viên mà lập trình viên i có thể làm người hướng dẫn.

Input1

4 2
10 4 10 15
1 2
4 3

Output1

0 0 1 2

Input2

5 3
10 4 10 15 4
1 2
3 2
4 5

Output2

1 0 1 3 0


Bình luận

Không có bình luận nào.