trang chủ / đề bài / thhv19_ctq_10_c

Cấp nước

Đề bài

Mô tả

An sinh ra tại một xã vùng cao của Sơn La, rất khan hiếm nước. Xã của An có tất cả N ngôi làng nhỏ, làng thứ i có độ cao so với mặt nước biển là ai.

Trước kia người ta đã đào M con mương nối các ngôi làng với nhau mà không tính đến việc nước có chảy được sang nhau hay không.

Hiện nay xã của An quyết định đặt một trạm cấp nước tại ngôi làng K. Với hệ thống mương đã có và độ cao của các làng, hãy giúp An xem xã của An có bao nhiêu làng sẽ được cung cấp nước.

Biết rằng nước có thể chảy từ làng i đến làng j nếu có mương nối giữa làng i với làng j và aj≤ai. Mương không có hướng: một con mương nối X với Y cho phép nước chảy theo cả hai chiều (miễn là thỏa điều kiện độ cao). Nước chảy tiếp qua nhiều làng: một làng được cấp nước nếu nước từ một làng đã có nước chảy được sang nó (khi đó so sánh với độ cao của làng vừa có nước, không phải với làng K).

Yêu cầu: Hãy tính số lượng ngôi làng được cấp nước từ làng K (kể cả làng K).

Dữ liệu vào

  • Dòng 1: Ba số nguyên dương N,M,K (M,N≤5000, K≤N).
  • Dòng 2: Chứa N số nguyên dương a1,a2,…,aN là độ cao của các ngôi làng (ai≤109).
  • M dòng sau, mỗi dòng chứa hai số nguyên dương X và Y (X≠Y) có nghĩa là có con mương đã được đào thông nhau giữa làng X với làng Y. Có thể có nhiều con mương nối cùng một cặp làng.

Dữ liệu ra

In ra một số nguyên dương duy nhất là số lượng ngôi làng được cấp nước từ làng K (kể cả làng K).

Ràng buộc

  • 2≤N≤5000, 1≤M≤5000, 1≤K≤N.
  • 1≤ai≤109.
  • 1≤X,Y≤N, X≠Y.

Subtasks

  • 30% số test: M,N≤20.
  • 30% số test: M,N≤500.
  • 40% số test còn lại: không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
8 9 2
7 10 6 9 5 9 1 2
1 2
1 3
1 4
2 3
3 4
3 5
4 5
2 6
7 8
5 Các làng có nước là 1,2,3,5,6. Nước từ làng 2 chảy trực tiếp sang làng 1,3,6; nước từ làng 3 chảy sang làng 5. Nước từ làng 1,3,5 không chảy được sang làng 4 vì làng 4 cao hơn; làng 7,8 không có mương nối tới.
4 3 1
5 5 3 7
1 2
3 2
3 4
3 Ví dụ bổ sung (không có trong đề gốc). Làng 2 cao bằng làng 1 nên vẫn nhận nước; nước từ làng 2 chảy sang làng 3 (mương ghi 3 2 vẫn dùng được theo chiều ngược). Làng 4 cao hơn làng 3 nên không có nước. Đáp án: làng 1,2,3.
4 3 1
10 4 7 2
1 2
2 3
3 4
2 Ví dụ bổ sung (không có trong đề gốc). Làng 3 thấp hơn làng 1 nhưng cao hơn làng 2, nên nước từ làng 2 không chảy lên làng 3; làng 4 cũng không nhận được nước. Đáp án: làng 1,2.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0