# 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)