# Prepare bài Bedao Contest
**Tác giả**: lanhf
## Hướng dẫn chung
- [Video record cách dùng polygon](https://drive.google.com/file/d/1VKVPcTY8L2VMP-ocPOgy7HoBkFRvTqnL/view?usp=drive_link)
- 2:00: Tạo bài, chuẩn bị các thông tin chung của bài
- 2:45: Viết statement
- 18:30: Viết validator
- 36:15: Viết generator
- [Blog hướng dẫn cách viết validator](https://codeforces.com/blog/entry/18426)
- [Blog hướng dẫn cách viết generator](https://codeforces.com/blog/entry/18291)
- [Blog hướng dẫn cách viết checker](https://codeforces.com/blog/entry/18431)
- [Blog hướng dẫn cách viết interactor](https://codeforces.com/blog/entry/18455)
## Checker, validator, và interactor
- Sử dụng $\texttt{testlib.h}$.
- Tránh sử dụng $\texttt{define}$ nếu không quá cần thiết.
- Viết code dễ đọc, dễ hiểu.
- Nên sử dụng tool để format code.
## Validator
- Thêm validator tests để kiểm tra.
- Validate từng subtask.
## Checker
- Sử dụng checker có sẵn nếu khả thi.
- Sử dụng $\texttt{std::yesno.cpp}$ cho các bài dạng "YES/NO".
- Không validate input trong checker (việc này để trong validator).
- Luôn validate đáp của cả thí sinh và code mẫu theo cách giống nhau (đọc thêm ở blog về checker).
- Không spoil thuật toán trong checker.
- Comment của checker cần đủ nghĩa và dễ hiểu.
## Statement
- Mỗi từ trong tên bài phải viết hoa chữ cái đầu.
- Trong phần input, thêm giới hạn của một giá trị vào trong dấu ngoặc ngay sau khi liệt kê nó. Dấu ngoặc không được để nằm giữa dấu $ của công thức LaTex. Ví dụ: $$\texttt{\$n\$ (\$1\le n \le 10^5\$)} $$
- Liệt kê hết các giá trị trước khi thêm giới hạn
Sai: $$\texttt{hai số nguyên \$n\$ (\$1 \le n \le 100\$) và \$m\$ (\$1 \le m \le 100\$).} $$
Đúng: $$\texttt{hai số nguyên \$n\$ và \$m\$ (\$1 \le n, m \le 100\$).} $$
- Từ, dấu cách, dấu câu không để nằm trong công thức Tex.
- Tất cả giá trị, biến và hằng số quan trọng phải để nằm trong công thức Tex.
- Để định nghĩa dãy số, sử dụng một trong hai cách:
$$\texttt{Một dãy \$x\$ gồm \$n\$ phần tử}$$
$$\texttt{Một dãy \$x_1, x_2, \ldots, x_n\$}$$
- Để viết dấu gạch ngang dài (dash), viết $\texttt{---}$ (ba dấu trừ liên tiếp).
- Dùng $\texttt{\cdot}$ cho phép nhân.
- Dùng $\texttt{\bmod}$ cho phép modulo.
- Dùng $\texttt{\equiv}$ và $\texttt{\pmod}$ để thể hiện quan hệ đồng dư.
$$\texttt{\$a \equiv b \pmod{c}\$}$$
- Sử dụng format subtask sau:
```
\begin{tabular}{c|c|l}
\textbf{Subtask} & \textbf{Điểm} & \textbf{Giới hạn} \\ \hline
1 & $20$ & $n \le 20$ \\ \hline
2 & $30$ & $n \le 50$ \\ \hline
3 & $50$ & Không có ràng buộc gì thêm \\
\end{tabular}
```
## Points
## Về việc chia subtask