Editorial for TRINNUM


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Subtask 1: 1N200

  • Ta xét tất cả các cặp ba số và kiểm tra từng bộ ba.
  • Độ phức tạp O(N3).

Subtask 2: 200<N2000

  • Gọi csx là số cặp số (i,j)(aiaj).
  • Gọi fu là số lượng số trong mảng a phần dư cho M bằng u.
  • Duyệt qua từng cặp số 0x,y<M nếu xy thì tăng kết quả thêm csxfy.
  • Độ phức tạp O(n2).

Subtask 3: 0M200

  • Gọi fu là số lượng số trong mảng a phần dư cho M bằng u.
  • Duyệt qua từng bộ ba số 0i,j,k nếu ijk thì tăng kết quả thêm fifjfk.
  • Độ phức tạp O(M3).

Subtask 4: Không giới hạn gì thêm

  • Gọi fu là số lượng số trong mảng a phần dư cho M bằng u.
  • Kết hợp lời giải của subtask 2 và subtask 3.
  • Gọi cmx là tổng fifj của các cặp (i,j)ij.
  • Duyệt qua từng cặp số 0i,j<M nếu ij thì tăng kết quả thêm ficmj.
  • Độ phức tạp O(M2).

Comments

Please read the guidelines before commenting.


There are no comments at the moment.