Submit solution
Points:
100.00 (partial)
Time limit:
1.0s
Memory limit:
1G
Input:
stdin
Output:
stdout
Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text
Cho đồ thị có ~n~ đỉnh và ~m~ cạnh, các đỉnh được đánh số từ ~1~ đến ~n~. Trên mỗi cạnh được gán một số nguyên không âm là trọng số của cạnh đó. Trọng số của một đường đi được tính bằng phép toán or
(ký hiệu: or
trong pascal, |
trong C++), Nói cách khác, một đường đi qua các cạnh có trọng số lần lượt là ~m_1~,~m_2~,…,~m_k~ thì trọng số của đường đi này là ~m_1~ or
~m_2~ or
… ~m_k~
Cho đồ thị và ~2~ đỉnh ~s, t~, hãy tìm đường đi có trọng số nhỏ nhất từ ~s~ đến ~t~, nếu không tìm được đường đi thì in ~-1~.
Dữ liệu vào:
- Dòng đầu tiên ghi ~2~ số nguyên ~n,m~
- ~m~ dòng tiếp theo, mỗi dòng ghi ~3~ số nguyên ~u,v,c~ ~(1≤u,v≤n)~ cho biết ~c~ là trọng số của cạnh ~u,v~
- Dòng cuối cùng ghi ~2~ số nguyên ~s,t~ ~(1≤s,t≤n;s≠t)~
Kết quả: Một số nguyên duy nhất là kết quả bài toán.
Ví dụ:
Input
3 4
1 2 1
1 2 1000
2 3 3
1 3 100
1 3
output
3
Giới hạn:
- ~1≤n≤1000~
- ~1≤m≤10000~
- ~1≤c<1024~
Comments
Thầy spam hơi kinhh