Friday 2 October 2020

Grakn Forces 2020 - Problem A



Làm chơi ai ngờ tụt rating

A - Circle Coloring

Tóm tắt: Bạn được cho 3 mảng số nguyên a[1], a[2], .., a[n]; b[1], b[2], .., b[n]; c[1], c[2], .., c[n]. Với mỗi i, a[i] ≠ b[i], b[i] ≠ c[i] và a[i] ≠ c[i]. Tìm một dãy số p[1], p[2], .., p[n] thỏa các điều kiện sau:

  • p[i] ∈ {a[i], b[i], c[i]}
  • p[i] ≠ p[(i mod n) + 1]

Nói cách khác: với mỗi phần tử i của p, bạn cần chọn 1 trong 3 giá trị a[i], b[i] hay c[i] sao cho 2 phần tử liên tiếp (ta xét i và i + 1 là 2 phần tử liên tiếp ∀ i < n, tính cả 1 và n) có giá trị khác nhau.

Hướng giải: ở đây căn cứ vào mô tả mà làm. Tuy nhiên ta cần lưu ý là khi i = n thì giá trị biểu thức (i mod n) + 1 = 1. Vậy nên giá trị thứ n không được trùng với giá trị đầu tiên.

Code mẫu (C++).

Happy coding!

No comments:

Post a Comment

Popular posts