Cắm trại

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 (p) Thời gian: 1.5s Bộ nhớ: 1G Input: camping.inp Output: camping.out

Công ty của Thuận mới được thành lập. Để tăng sự đoàn kết cho các nhân viên trong công ty, Thuận quyết định sẽ đưa nhân viên đi cắm trại.

Công ty của Thuận có tất cả \(n\) nhân viên. Bãi cắm trại nơi công ty của anh ấy cắm trại có thể được coi là một trục tọa độ \(x\) dài vô tận. Mỗi nhân viên sẽ tự cắm lều của mình xuống một điểm bất kì. Tuy nhiên, do các nhân viên được tuyển mới và chưa quen nhau (cũng có thể do không ưa nhau) nên tồn tại một vài \(m\) yêu cầu về vị trí. Yêu cầu thứ \(i\) cho biết nhân viên \(a_i\) muốn vị trí cắm trại của mình nằm ở phía trước nhân viên \(b_i\) một khoảng cách có giá trị bằng \(d_i\) đơn vị độ dài (nếu như \(d_i < 0\) có nghĩa là nhân viên \(a_i\) muốn vị trí cắm trại của mình nằm ở phía sau nhân viên \(b_i\) một khoảng cách có giá trị bằng \(d_i\) đơn vị độ dài).

Bạn sẽ vào vai một học sinh đội tuyển tin nhận nhiệm vụ lập trình kiểm tra xem tất cả các điều kiện trên có thể được thỏa mãn hay không.

Lưu ý, có khả năng tồn tại nhiều nhân viên có thể cùng cắm trại tại một vị trí.

Input

  • Dòng thứ nhất chứa một số nguyên dương \(T\) (\(1 \le T \le 5\)) - số bộ dữ liệu.
  • Mỗi bộ dữ liệu được mô tả như sau:
    • Dòng thứ nhất chứa hai số nguyên dương \(n,m\) (\(2 \le n \le 2 \times 10^5; 1 \le m \le n\)).
    • \(m\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(a_i,b_i,d_i\) (\(a_i \neq b_i; 1 \le a_i,b_i \le n; -10^9 \le d_i \le 10^9\)) mô tả một yêu cầu về vị trí.
  • Dữ liệu đảm bảo tổng của tất cả \(n\) trong các bộ dữ liệu không vượt quá \(10^6\).

Output

  • Gồm \(T\) dòng, với mỗi bộ dữ liệu, đưa ra YES nếu tất cả điều kiện có thể được thỏa mãn, ngược lại đưa ra NO.

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(m = n-1; b_i = a_i+1 \forall i: 1 \le i \le n\).
  • Subtask \(2\) (\(60\%\) số điểm): không có ràng buộc gì thêm.

Example

Test 1
Input
2
5 3
1 2 2
2 3 4
4 2 -6
2 2
1 2 5
1 2 4
Output
YES
NO
Note

Một phương án săp xếp nhân viên thỏa mãn cho testcase \(\#1\):

  • Nhân viên \(1\) ở vị trí \(x = 3\).
  • Nhân viên \(2\) ở vị trí \(x = 5\).
  • Nhân viên \(3\) ở vị trí \(x = 9\).
  • Nhân viên \(4\) ở vị trí \(x = 11\).
  • Nhân viên \(5\) ở vị trí \(x = 15092002\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.