canuc80k5203·4/50

Những Khúc Gỗ

Nộp bài trên LQDOJ

Bài 52 · Ad Hoc Game Theory

Có khúc gỗ nguyên dương, khúc thứ dài . Mỗi lượt chọn một khúc dài và chặt thành hai khúc nguyên dương y,z với . Người không thể chặt tiếp thua; errorgorn đi trước.

Input

  • Dòng đầu chứa . Mỗi test gồm , sau đó là độ dài đoạn gỗ.

Output

  • Với mỗi test, in errorgorn hoặc maomao90 theo người thắng.

Constraints

  • .
  • , tổng không vượt .
  • .

Scoring

  • Subtask ( số điểm): các test - có kích thước nhỏ, thuận tiện kiểm chứng độc lập.
  • Subtask ( số điểm): không có giới hạn bổ sung ngoài các cận đã nêu.

Example

Test 1

Input

1
1
1

Output

maomao90

Giải thích: Khúc gỗ duy nhất có độ dài , nên không thể chẻ thành hai khúc có độ dài nguyên dương. Người đi trước không có nước đi và kết quả là maomao90.

Lời giải tóm tắt
  • Ý tưởng và thuật toán: Với một khúc dài x, để cuối cùng thành toàn khúc đơn vị cần đúng x-1 lần chặt: ban đầu có một khúc, cuối cùng có x khúc, và mỗi lần chặt tăng số khúc thêm đúng một.
  • Ý tưởng và thuật toán: Toàn bộ trò chơi vì thế có M = Σ(a_i-1) = Σa_i - n lượt, không phụ thuộc người chơi chặt theo cách nào. Người đầu thắng khi M lẻ.
  • Chứng minh đúng đắn: Bổ đề. Mỗi nước đi giảm thế năng P=Σ(length-1) đúng 1: thay x-1 bằng (y-1)+(z-1)=x-2.
  • Chứng minh đúng đắn: P không âm; P=0 khi và chỉ khi mọi khúc dài 1, tức không còn nước. Vì mỗi lượt giảm đúng một, số lượt từ trạng thái đầu đến cuối đúng bằng P_0. Do đó parity P_0 quyết định người thực hiện lượt cuối và thuật toán đúng.
  • Độ phức tạp: Mỗi test O(n) thời gian, O(1) bộ nhớ phụ.