# C++
## Input
Thêm dòng này ở đầu hàm `main()` để tăng tốc độ đọc input:
``` cpp
cin.tie(0)->sync_with_stdio(0);
```
## Output
Dùng `'\n'` để xuống dòng thay vì `endl`
Nếu bạn quen dùng `endl` rồi thì thêm dòng này sau khi include thư viện:
``` cpp
#define endl '\n'
```
## File I/O
Nếu đề bài yêu cầu input/output từ file, thêm hai dòng này ở đầu hàm `main()`:
``` cpp
freopen("FILENAME.INP", "r", stdin);
freopen("FILENAME.OUT", "w", stdout);
```
Tên file không phân biệt chữ hoa/thường nên bạn viết `"FILENAME.INP"`, `"filename.inp"` hay `"FiLeNamE.iNp"` đều được.
## Tricks (sẽ bổ sung thêm)
### Trick #1
Thêm dòng này:
``` cpp
#define debug 1
```
Khi nào bạn cần in gì đó ra để xem code chạy như thế nào (không phải thứ đề bài yêu cầu) thì viết như này:
``` cpp
if (debug) {
for (int i = 0; i < n; ++i) {
cout << a[i] << ' ';
}
cout << '\n';
}
```
Đến khi nộp bài thì bạn chỉ cần sửa `1` thành `0` ở dòng `#define` thôi chứ không phải mất công xoá code.
## Benchmark
- Không Fast I/O: [1731ms](https://codeforces.com/contest/816/submission/245986466)
- Có Fast I/O: [280ms](https://codeforces.com/contest/816/submission/245986484)
# Python
## Input
``` python
import sys
input = lambda: sys.stdin.readline().rstrip()
```
## File I/O
Cho 4 dòng này ở đầu, phần còn lại viết như Input từ bàn phím và Output ra màn hình
``` python
import sys
sys.stdin = open("FILENAME.INP")
sys.stdout = open("FILENAME.OUT", "w")
input = lambda: sys.stdin.readline().rstrip()
```
## Output
(Không quá cần thiết với những bài có lượng output ít)
``` python
import sys
print = sys.stdout.write
```
Giờ thì hàm `print()` chạy nhanh hơn, nhưng trước khi print phải ép kiểu thành `str` mới dùng được.
## Tricks (sẽ bổ sung thêm)
Nên bỏ hết tất cả những gì cần output vào một list rồi in một thể
### Cách print một list
Nếu tất cả elements trong `a` không phải `str`
``` python
a = [1, 2, 3, 4]
print(' '.join(map(str, a))) # Cách nhau bởi dấu cách
print('\n'.join(map(str, a))) # Mỗi element trên một dòng
```
Nếu tất cả elements trong `a` là `str`
``` python
a = ["abc", "def", "ghi"]
print(' '.join(a)) # Cách nhau bởi dấu cách
print('\n'.join(a)) # Mỗi element trên một dòng
```
### Cách input một list
#### Trên một dòng
``` python
# list of int
a = [*map(int, input().split())]
# list of str
b = input().split()
# lấy list rồi xử lý tại chỗ
def f(x):
x = float(x)
return x**3 - 4*x**2 + 5*x - 1
c = [*map(f, input().split())]
```
### Xử lý bài multi-test
Nên viết function cho dễ xử lý
``` python=
import sys
sys.stdin = open("FILENAME.INP")
sys.stdout = open("FILENAME.OUT", "w")
input = lambda: sys.stdin.readline().rstrip()
print = sys.stdout.write
def solve():
# input
# tính toán các thứ các thứ...
return ans # int
t = int(input())
a = [solve() for _ in range(t)]
print('\n'.join(map(str, a)))
```
Bonus: dòng 12-14 có thể viết lại thành 1 dòng (cho ngầu :)) như này:
``` python
print('\n'.join(map(str, (solve() for _ in range(int(input()))))))
```
## Benchmark
- Không Fast I/O: [1263ms](https://codeforces.com/contest/1900/submission/234487140)
- Có Fast I/O: [233ms](https://codeforces.com/contest/1900/submission/246058675)