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

Truy tìm cổ vật

Đề bài

Mô tả

n hòn đảo được nối với nhau bởi m cây cầu, sao cho từ một đảo bất kỳ luôn có thể đi tới mọi đảo khác. Trên một số cây cầu có đặt cổ vật.

Johnny đang ở đảo a, còn người mua cổ vật ở đảo b (hai đảo này có thể trùng nhau). Johnny muốn đi lấy được ít nhất một cổ vật rồi tới chỗ người mua để bán.

Khó khăn là mỗi cây cầu sẽ sập ngay sau khi Johnny đi qua nó, nên mỗi cây cầu chỉ có thể được đi qua nhiều nhất một lần. Johnny không thể bơi, bay hay dịch chuyển tức thời, và cũng không thể đi nửa cây cầu rồi quay lại đảo cũ — muốn lấy cổ vật trên một cây cầu thì phải đi hết cây cầu đó.

Hãy xác định Johnny có thể lấy được một cổ vật rồi tới được đảo b hay không.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm — số đảo và số cầu.
  • m dòng tiếp theo, mỗi dòng chứa ba số nguyên xi, yi, zi: cây cầu thứ i nối đảo xi với đảo yi; zi=1 nếu trên cầu có cổ vật, zi=0 nếu không.
  • Dòng cuối chứa hai số nguyên ab — đảo của Johnny và đảo của người mua.

Dữ liệu ra

In ra "YES" nếu Johnny có thể lấy được một cổ vật và tới đảo b, ngược lại in ra "NO".

Ràng buộc

  • 1n3·105
  • 0m3·105
  • 1xi,yin, xiyi, 0zi1
  • Giữa hai đảo bất kỳ có không quá một cây cầu.
  • Đồ thị liên thông (luôn đi được giữa mọi cặp đảo).
  • 1a,bn

Ví dụ

Input Output Giải thích
6 7
1 2 0
2 3 0
3 1 0
3 4 1
4 5 0
5 6 0
6 4 0
1 6
YES Để tới 6, Johnny bắt buộc phải đi qua cầu 34 (có cổ vật), nên lấy được cổ vật.
5 4
1 2 0
2 3 0
3 4 0
2 5 1
1 4
NO Cầu duy nhất có cổ vật là 25. Để lấy nó rồi tới 4, Johnny phải đi 252, nhưng cầu 25 chỉ đi được một lần. Không có cách nào vừa lấy cổ vật vừa tới 4.
5 6
1 2 0
2 3 0
3 1 0
3 4 0
4 5 1
5 3 0
1 2
YES Từ 1 có thể đi 134532, qua cầu 45 lấy cổ vật rồi về 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.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