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 YES nếu có cách gia tăng tài sản vô hạn, ngược lại in ra NO.

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

Không có ý kiến tại thời điểm này.