Tô màu đồ thị

View as PDF

Time limit: 1.0s , Memory limit: 256M , Points: 2000 (partial)

Lưu ý: Bài toán này không chia Subtask.

Cho đơn đồ thị vô hướng gồm n đỉnh và m cạnh, các đỉnh được đánh số từ 1 đến n. Mỗi đỉnh của đồ thị được nối với ít nhất một đỉnh khác (không có đỉnh cô lập).

Ban đầu, đỉnh s được tô màu đen, các đỉnh còn lại đều được tô màu trắng. Tiến hành thao tác tô màu sau với bất kỳ số lần nào (có thể không thực hiện):

  • Chọn một đỉnh v (1 \le v \le n). Trong số các đỉnh i có cạnh nối trực tiếp đến v, nếu số lượng đỉnh được tô màu trắng nhỏ hơn hoặc bằng số lượng đỉnh được tô màu đen thì tiến hành tô màu đen cho đỉnh v.

Cho số nguyên dương k. Bạn hãy xác định có tồn tại ít nhất một chuỗi các thao tác sao cho đỉnh k được tô màu đen hay không.

Input

  • Dòng đầu tiên chứa bốn số nguyên n,m,k,s (2 \le n \le 2 \times 10^5 ; 1 \le m \le 3 \times 10^5 ; 1 \le k,s \le n).
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ab mô tả cạnh nối hai đỉnh a-b (1 \le a,b \le n ; a \neq b).
  • Dữ liệu đảm bảo đồ thị đã cho là một đơn đồ thị và không có đỉnh cô lập.

Output

  • In ra YES nếu tồn tại ít nhất một chuỗi các thao tác thỏa mãn, ngược lại in ra NO.

Examples

Sample Input 1
4 3 4 1
1 2
2 3
3 4
Sample Output 1
YES
Sample Input 2
4 3 4 1
1 4
2 4
3 4
Sample Output 2
NO
Sample Input 3
4 2 2 2
1 4
2 3
Sample Output 3
YES

Comments