Tỷ giá chênh lệch
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Bình tham gia giao dịch trên một sàn tiền điện tử có \(N\) loại tiền tệ khác nhau. Sàn cung cấp \(M\) ưu đãi quy đổi trực tiếp từ loại tiền này sang loại tiền khác với tỷ giá \(r\) (tức là 1 đơn vị tiền \(u\) đổi được \(r\) đơn vị tiền \(v\)).
Hãy giúp Bình kiểm tra xem có chuỗi quy đổi nào (bắt đầu từ một loại tiền tệ, đổi qua một số đồng tiền trung gian rồi quay lại đồng tiền ban đầu) giúp Bình gia tăng số lượng tiền tệ vô hạn hay không.
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên \(N\) và \(M\) (\(1 \le N \le 500\), \(0 \le M \le 1000\)).
- \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u\), \(v\) (\(1 \le u, v \le N\)) và một số thực \(r\) (\(0.01 \le r \le 100.0\)), biểu thị tỷ giá đổi từ \(u\) sang \(v\).
Định dạng đầu ra
- In ra
YESnếu có cách gia tăng tài sản vô hạn, ngược lại in raNO.
Ví dụ
Input:
3 3
1 2 2.0
2 3 2.0
3 1 0.3
Output:
YES
Giải thích: Nếu bắt đầu từ 1 đơn vị tiền tệ 1:
- Đổi từ 1 sang 2: ta có 2.0 đơn vị tiền tệ 2.
- Đổi từ 2 sang 3: ta có 2.0 * 2.0 = 4.0 đơn vị tiền tệ 3.
- Đổi từ 3 sang 1: ta có 4.0 * 0.3 = 1.2 đơn vị tiền tệ 1.
Vì 1.2 > 1.0, ta có thể tiếp tục thực hiện chu trình này vô hạn lần để thu được lượng tiền lớn vô hạn. Do đó kết quả là
YES.
Ràng buộc
- Subtask 1 (40% số điểm): \(N \le 50\), \(M \le 100\).
- Subtask 2 (60% số điểm): Không có ràng buộc gì thêm.
Nhận xét