Editorial for EXP


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.

Author: Yunan

Nguồn: Free Contest

Đáp án của bài này chỉ cần tìm \text{min} của các trường hợp có thể viết ra. Tất cả có 9 trường hợp:

  • \(|a ∗ b ∗ c|\)
  • \(|a ∗ b + c|\)
  • \(|a ∗ b - c|\)
  • \(|a + b ∗ c|\)
  • ...
  • |a - b - c|

Khó khăn của bài này là việc xét cho cả 9 trường hợp code tương đối dài. Thay vì xét a + ba - b (cũng tương tự với b, c) thì xét \(a + 1 ∗ b\) và \(a + (-1) ∗ b\) (lúc này có thể dùng vòng lặp để chạy từ -1 tới 1 với bước nhảy là 2), lúc này việc xét các trường hợp sẽ dễ dàng hơn.

Bài này còn có thể mở rộng ra thay vì 3 toán hạng thì nó thành n toán hạng (n \le 13). Nhưng lúc này việc dùng vòng lặp sẽ rất phức tạp thay vì thế ta dùng ký pháp tiền tố/hậu tố kết hợp với quay lui để giải quyết (bạn đọc có thể tự tìm hiểu thêm).


Comments