Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Câu 3. Chia kẹo (2.5 điểm, 1 giây)

100 điểm

Tý có \(A\) cái kẹo chanh, \(B\) cái kẹo dừa và muốn chia tất cả cho vài người bạn. Tý nhắm tính: nếu mỗi bạn nhận được số kẹo bằng nhau với mỗi loại thì sẽ có bao nhiêu cách để chia.

Ví dụ: Với \(A = 4, B = 12\) , có ba cách chia:

  • Nếu chia cho một bạn thì bạn đó sẽ nhận \(4\) cái kẹo chanh và cái \(12\) kẹo dừa;
  • Nếu chia cho hai bạn thì mỗi bạn sẽ nhận \(2\) cái kẹo chanh và cái kẹo \(6\) dừa;
  • Và nếu chia cho bốn bạn thì mỗi bạn sẽ nhận \(1\) cái kẹo chanh và cái \(3\) kẹo dừa.

Yêu cầu: Hãy giúp Tý tìm và ghi ra tất cả các cách có thể chia hết số kẹo cho các bạn sao cho
mỗi bạn luôn nhận được số kẹo bằng nhau mỗi loại. Giả sử Tý có vô số bạn bè để chia kẹo

Input

Dữ liệu vào từ tập văn bản CAU3.INP gồm một dòng chứa hai số nguyên \(A, B\) cách nhau dấu cách (\(1 \leq A, B \leq 10^{17}\)).

Output

Ghi ra tập văn bản CAU3.OUT tương ứng với mỗi cách chia ghi ra ba số nguyên \(n, x, y\) cách nhau dấu cách. Số \(n\) là số bạn mà Tý có thể chia kẹo. Số \(x\) và \(y\) là số kẹo chanh và kẹo dừa mà mỗi bạn nhận được trong cách chia đó. Mỗi cách chia ghi ra đúng một lần và theo thứ tự tăng của \(n\).

Example

Test 1

Input
4 12
Output
1 4 12
2 2 6
4 1 3

Scoring

  • \(30\%\) số tests tương ứng \(30\%\) số điểm của bài có \(A, B \leq 10^7\);
  • \(30\%\) số tests khác tương ứng \(30\%\) số điểm của bài có \(A, B \leq 10^{12}\);
  • \(40\%\) số tests còn lại tương ứng \(40\%\) số điểm của bài không có ràng buộc gì thêm.

root

Độ giống nhau

100 điểm

Cho hai cây \(A\) và \(B\) đều gồm \(n\) đỉnh, mỗi đỉnh được đánh số từ \(1\) đến \(n\). Với mỗi cây, bạn được biết thông tin về cha của từng đỉnh:

  • Trên cây \(A\), \(a_i\) là cha của đỉnh \(i\). Nếu \(u\) là gốc cây \(A\) thì \(a_u = -1\).
  • Trên cây \(B\), \(b_i\) là cha của đỉnh \(i\). Nếu \(v\) là gốc cây \(B\) thì \(b_v = -1\).

Một đỉnh \(x\) được gọi là tổ tiên của đỉnh \(y\) trên một cây nếu tồn tại một dãy các đỉnh \(z_1, z_2, \dots, z_k\) sao cho \(z_1 = x\), \(z_k = y\) và với mỗi \(j\), \(z_j\) là cha của \(z_{j+1}\).

Một cặp đỉnh \((u, v)\) được gọi là thỏa mãn nếu \(u\) là tổ tiên của \(v\) trên cả cây \(A\) và cây \(B\).

Nhiệm vụ: Hãy đếm xem có bao nhiêu cặp \((u, v)\) thỏa mãn như vậy.

\InputFile

  • Dòng đầu tiên chứa số nguyên \(n\) \((1 \le n \le 10^6)\).
  • \(n\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(a_i\) và \(b_i\) --- cha của đỉnh \(i\) trên cây \(A\) và cây \(B\) \((1 \le a_i, b_i \le n\) hoặc \(-1\) nếu là gốc).

\OutputFile

  • In ra một số nguyên duy nhất --- số cặp \((u, v)\) sao cho \(u\) là tổ tiên của \(v\) trên cả hai cây.

\Scoring

  • Subtask 1 (25%): \(n \le 100\)
  • Subtask 2 (25%): \(n \le 2000\)
  • Subtask 3 (25%): \(n \le 10^5\)
  • Subtask 4 (25%): Không có giới hạn thêm

Example

Test 1

Input
3
-1 -1
1 3
1 1
Output
2

root

Bộ sưu tập chữ số

100 điểm

Ami rất thích sưu tập các con số đặc biệt. Theo cậu, một số càng "đơn giản" thì càng đẹp. Vì vậy, Ami chỉ quan tâm đến những số được tạo thành từ không quá \(K\) chữ số khác nhau.

Ví dụ:

  • \(12222111\) chỉ sử dụng hai chữ số là \(1\) và \(2\), nên đẹp với \(K \ge 2\).
  • \(505050\) chỉ sử dụng hai chữ số là \(0\) và \(5\).
  • \(123456\) sử dụng sáu chữ số khác nhau.

Ami muốn tính tổng tất cả các số đẹp nằm trong đoạn \([L,R]\).

Yêu cầu. Cho ba số nguyên \(L\), \(R\) và \(K\). Hãy tính tổng các số trong đoạn \([L,R]\) mà sử dụng không quá \(K\) chữ số khác nhau.

Vì kết quả có thể rất lớn, chỉ cần in ra kết quả theo modulo \(998244353\).

\InputFile

Gồm một dòng chứa ba số nguyên

\[ L,\ R,\ K \]

thỏa mãn

\[ 1\le L\le R<10^{18}, \]
\[ 1\le K\le10. \]

\OutputFile

In ra một số nguyên là tổng các số thỏa mãn điều kiện, lấy modulo \(998244353\).

\Examples

\beginexample
\exmp
10 50 2

1230

\exmp
1 2345 10

2750685

\exmp
101 154 2

2189

\endexample

\Note

Trong ví dụ thứ nhất, mọi số trong đoạn đều sử dụng không quá \(2\) chữ số khác nhau, nên đáp án chính là tổng các số từ \(10\) đến \(50\).

\endproblem

root

Xâm nhập mật khẩu

100 điểm

Gần đây, mạng xã hội \(New\ Social\ Network\) có sự xâm nhập thông tin người dùng. Mihael, một sinh viên trẻ, đã tìm thấy một lỗi xâm nhập tài khoản người dùng đó là: khi bạn nhập bất kỳ chuỗi ký tự có chứa chuỗi con bằng mật khẩu thực tế thì đăng nhập sẽ thành công. Ví dụ: nếu người dùng có mật khẩu abc thì khi nhập một trong các chuỗi abc, abcd hoặc xyaabccz, hệ thống sẽ đăng nhập thành công.

Yêu cầu: Mihael muốn biết có bao nhiêu cặp người dùng khác nhau sao cho người dùng đầu tiên sử dụng mật khẩu riêng của họ, có thể đăng nhập như người dùng thứ hai. Bạn hãy giúp Mihael tính nhanh điều đó.

Input

  • Dòng đầu tiên chứa số nguyên dương \(N\) (\(1\le N \le20000\)) là số lượng người dùng.

  • \(N\) dòng sau chứa mật khẩu của người dùng. Các mật khẩu bao gồm ít nhất một hoặc nhiều nhất là 10 chữ cái viết thường của bảng chữ cái tiếng Anh.

Output

  • Một dòng duy nhất chứa số lượng cặp người dùng theo yêu cầu nói trên.

Example

Test 1

Input
3
a
b
ab
Output
2

Test 2

Input
4
a
ab
a
abc
Output
7
Xem thêm