MAFC Contest

Bộ đề bài

1. Hoán Vị Lớn Nhỏ

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một số nguyên dương \(X\). Một số \(Y\) được gọi là đồng môn với \(X\) nếu \(Y\) được tạo ra bằng cách tráo đổi vị trí các kí tự trong \(X\). Hãy tìm số đồng môn nhỏ nhất lớn hơn \(X\).

Input

  • Dòng đầu tiên chứa một số nguyên dương \(X\).

Output

  • Một số nguyên dương là kết quả. Nếu không tồn tại kết quả thì in ra \(0\).

Scoring

  • \(1 \leq X \leq 10^6\)

Example

Test 1

Input
123
Output
132

2. Line

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho \(N\) đường thẳng có dạng \(Ax+By+C=0\) trên mặt phẳng tọa độ. Biết rằng không có ba đường thẳng nào cùng giao nhau ở 1 điểm. Bạn hãy tính số lượng tam giác tạo thành từ các đường thẳng. Vì kết quả có thể rất lớn, đáp số cuối cùng sẽ modulo \(10^9+7\).

Input

  • Dòng đầu tiên là số nguyên dương \(N\), là số lượng đường thẳng. \((1 \leq N \leq 3 \times10^5)\)
  • \(N\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(A, B, C\) (Các giá trị tuyệt đối không vượt quá \(10^9\))

Output

  • Một dòng duy nhất là số lượng tam giác tạo thành.

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(N \leq 5000\)
  • Subtask \(2\) (\(60\%\) số điểm): không có điều kiện gì thêm

Example

Test 1

Input
6
0 1 0
-5 3 0
-5 -2 25
0 1 -3
0 1 -2
-4 -5 29 
Output
10
Note

3. Xoay Ma Trận

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình
<style> div.abc{margin-left: 30px;} </style>

Cho một ma trận có kích thước N x M chỉ gồm các số 0 và 1. Nhiệm vụ của bạn là tìm một ma trận con thỏa mãn các điều kiện sau:

1) Là một hình vuông có cạnh lớn hơn bằng 2.

2) Diện tích lớn nhất

3) Khi xoay 180 độ theo chiều kim đồng hồ thì ma trận con đó vẫn giống như ban đầu.

Input

  • Dòng thứ nhất là hai số nguyên dương N, M là kích thước ma trận

  • N dòng tiếp theo, mỗi dòng gồm M ký tự '0' hoặc '1'

Output

  • Một dòng duy nhất là độ dài cạnh ma trận lớn nhất thỏa mãn điều kiện trên, nếu không tồn tại xuất -1.

Constants

\(1 \leq N, M \leq 300\)

Example

Test 1

Input
3 3
100
011
101 
Output
2
Note

4. bignum

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Kuzan có một bài toán về nhà như sau: Cho một số nguyên dương \(X\), ta chia \(X\) thành từng nhóm sao cho mỗi nhóm chỉ bao gồm một loại chữ số. Giá trị của số \(X\) được tính bằng tổng giá trị các nhóm, mà tổng giá trị các nhóm được tính bằng giá trị của chữ số nhóm nhân với bình phương độ dài nhóm. Ví dụ: số \(3332144\) có giá trị là \(46\) vì ta chia thành các nhóm \(333, 2, 1, 44\) với tổng là \(3*3^2+2*1^2+1*1^2+4*2^2 = 46\).

Tuy nhiên, vì cảm thấy còn dễ, Kuzan tự đặt ra bài toán mới cho mình: Tính tổng các giá trị của các số nguyên trong đoạn \([L;R]\). Bạn hãy cùng Kuzan giải bài toán này.

Input

  • Một dòng duy nhất là hai số nguyên dương \(L, R (1 \leq L \leq R \leq 10^{15})\).

Output

  • Một dòng duy nhất là đáp số bài toán.

Example

Test 1

Input
1 9
Output
45

5. inftab

Điểm: 100 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một bảng có số hàng và số cột là vô hạn. Các giá trị của các ô trong bảng được tính theo các quy tắc sau: Với \(i\) là chỉ số hàng, \(j\) là chỉ số cột, ta có:

  • \(A[i][1] = i\)
  • \(A[i][j] = A[i][j-1] + INV(A[i][j-1])\) \(\forall j > 1\)

Với \(INV(A)\) là hàm đảo ngược số \(A\). Ví dụ, \(INV(104) = 401, INV(200) = 002 = 2\).

Các số đầu tiên của bảng:

Cho \(Q\) truy vấn, mỗi truy vấn gồm hai số nguyên dương \(A\)\(B\). Bạn hãy đếm số lần xuất hiện các số trong khoảng \([A,B]\) trên bảng đó.

Input

  • Dòng đầu tiên là số nguyên dương \(Q\), số lượng truy vấn \((1 \le Q \le 10^5)\)
  • \(Q\) dòng tiếp theo, mỗi dòng là hai số nguyên dương \(A,B (1 \le A \le B \le 10^{10})\)

Output

  • Gồm \(Q\) dòng, mỗi dòng là kết quả của truy vấn.

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \(A,B\) \(\leq\) \(10^6\)
  • Subtask \(2\) (\(50\%\) số điểm): không có điều kiện gì thêm

Example

Test 1

Input
2
1 3
4 8
Output
4
11
Note
  • Trong khoảng [1;3], số 1 xuất hiện 1 lần, số 2 xuất hiện 2 lần, số 3 xuất hiện 1 lần nên tổng số lần xuất hiện là 4
  • Trong khoảng [4;8], số 4 xuất hiện 3 lần, số 5 xuất hiện 1 lần, số 6 xuất hiện 2 lần, số 7 xuất hiện 1 lần, số 8 xuất hiện 4 lần nên tổng số lần xuất hiện là 11