Số đối xứng nhỏ nhất

Số đối xứng là các số mà khi đọc từ phải qua trái vẫn là chính nó

Ví dụ 1, 121, 2552, ... là các số đối xứng

Cho số nguyên dương n, tìm số đối xứng nhỏ nhất lớn hơn hoặc bằng n

Input, Output and Scoring

Input
  • 1 số nguyên dương n (1 \le a \le b \le 10^{100}).
Output
  • Số đối xứng nhỏ nhất lớn hơn hoặc bằng n
Scoring
  • Subtask 1 (30\%): 2 \le a, b \le 10^5.
  • Subtask 2 (30\%): 2 \le a, b \le 10^{18}.
  • Subtask 3 (40\%): Không giới hạn gì thêm.

Example 1

Input

123

Output

131

Example 2

Input

5324

Output

5335

Số siêu đối xứng

Số siêu đối xứng là các số mà tất cả chữ số của nó đều giống nhau.

Ví dụ 1, 22, 333, 999999 là các số siêu đối xứng

Cho số nguyên dương n, tìm số siêu đối xứng nhỏ nhất lớn hơn hoặc bằng n

Input, Output and Scoring

Input
  • 1 số nguyên dương n (1 \le a \le b \le 10^{100}).
Output
  • Số siêu đối xứng nhỏ nhất lớn hơn hoặc bằng n
Scoring
  • Subtask 1 (30\%): 2 \le a, b \le 10^5.
  • Subtask 1 (30\%): 2 \le a, b \le 10^{18}.
  • Subtask 2 (40\%): Không giới hạn gì thêm.

Example 1

Input

123

Output

222

Example 2

Input

5324

Output

5555

Trại hè Phương Nam 2024 - Phương Nam

remyvnkhiemtruong

Phương Nam có N khu vực hành chính, được đánh số từ 1 đến N, được kết nối liên thông bởi N - 1 con đường tạo thành dạng cây trong lý thuyết đồ thị. Mỗi khu vực tương ứng với một đỉnh của cây, mỗi con đường tương ứng với một cạnh của cây. Nhắc lại, cây là một đồ thị vô hướng, liên thông và không có chu trình. Mỗi khu vực người ta gán cho một giá trị biểu thị mức độ phát triển khu vực đó, khu vực thứ i có có giá trị A_i.

Nhằm quy hoạch phát triển các khu vực một cách hiệu quả, người ta đánh giá một cụm S các khu vực liên thông nhau thông qua các con đường nối giữa chúng trong cụm đó bởi một độ hiệu quả. Giá trị độ hiệu quả này được tính bằng hiệu của giá trị lớn nhất trong số các giá trị khu vực thuộc S và giá trị nhỏ nhất trong số các giá trị khu vực thuộc S. Nói cách khác, với một cụm liên thông S, giá trị của S là max_{u∈S} A_u - min_{u∈S} A_u.

Người ta muốn chia toàn bộ N khu vực thành các cụm khu vực riêng biệt, mỗi cụm bao gồm một hoặc nhiều khu vực liên thông nhau bởi các con đường nối các khu vực trong cụm đó và đánh giá độ hiệu quả trên mỗi cụm. Tổng độ hiệu quả của một cách chia như vậy được tính bằng tổng giá trị của các cụm liên thông trong cách chia đó.

Yêu cầu: Hãy tìm cách chia toàn bộ N khu vực thành các cụm có tổng độ hiệu quả lớn nhất.

Input, Output

Input: (SOUTH.INP)

Vào từ file văn bản SOUTH.INP:

  • Dòng thứ nhất chứa một số nguyên N (1 \le N \le 3 · 10^5) là số lượng khu vực ở Phương Nam.
  • Dòng thứ hai chứa N số nguyên A_1, A_2,..., A_N (1 \le A_i \le 10^9) mô tả độ phát triển của khu vực tương ứng.
  • Dòng thứ i trong N - 1 dòng tiếp theo chứa hai số nguyên u_i, v_i (1 \le u_i, v_i \le N) mô tả một con đường nối hai khu vực u_i và v_i. Dữ liệu đảm bảo các con đường này tạo thành một cây.

Các số trên cùng một dòng cách nhau bởi dấu cách.

Output: (SOUTH.OUT)
  • Ghi ra file văn bản SOUTH.OUT một số nguyên duy nhất là tổng độ hiệu quả lớn nhất tìm được.

Sample

Subtask
  • Có 30\% số test ứng với 30\% số điểm của bài thoả mãn: N \le 20.
  • 30\% số test khác ứng với 30\% số điểm của bài thoả mãn: N \le 2000, và tất cả các đỉnh có bậc không quá 2.
  • 20\% số test khác ứng với 20\% số điểm của bài thoả mãn: Tất cả các đỉnh có bậc không quá 2.
  • 20\% số test còn lại ứng với 20\% số điểm của bài: Không có ràng buộc gì thêm.

Giải thích

Trong các hình vẽ minh họa bên trên, mỗi đỉnh tượng trưng cho một khu vực bao gồm hai số, số thứ nhất là chỉ số của khu vực, số thứ hai là giá trị của khu vực đó. Các đường đi được mô tả bằng các cạnh nỗi giữa các đỉnh.

Trại hè Phương Nam 2024 - Ước số

remyvnkhiemtruong

Các ước số tự nhiên có vai trò quan trọng trong nhiều thuật toán mã hóa, chẳng hạn như RSA, một thuật toán mã hóa công khai phổ biến. Việc tạo ra dãy các ước số của một tập hợp số tự nhiên có thể giúp hiểu được cách các ước số phân phối và ảnh hưởng đến tính bảo mật của mã hóa. Là một người yêu thích môn mật mã, Nam quan sát đặc điểm các ước số của một tập hợp số tự nhiên thông qua bài toán sau.

Nam có một dãy số A gồm N phần tử, mỗi phần tử là một số tự nhiên khác 0. Gọi D là dãy các phần tử có giá trị không giảm gồm tất cả các ước số tự nhiên, không nhất thiết phải phân biệt của các phần tử của A. Nam chuẩn bị dãy P gồm Q số tự nhiên khác 0, mỗi số biểu thị một vị trí trong dãy D. Do dãy D chưa được cho trước mà phải tính toán thông qua các giá trị trong dãy A và N, Nam mong muốn xác định nhanh từng giá trị phần tử trong dãy D tương ứng với mỗi phần tử thuộc dãy P. Ví dụ: với N = 4, A = (10, 2, 5, 2) và P = (5, 1, 10), ta có dãy D = (1, 1, 1, 1, 2, 2, 2, 5, 5, 10) và các giá trị phần tử trong dãy D tương ứng với mỗi phần tử thuộc dãy P là (2, 1, 10).

Yêu cầu: Hãy giúp Nam xác định từng phần tử trong dãy D tương ứng với với mỗi phần tử trong dãy P.

Input, Output

Input: (DIV.INP)

Vào từ file văn bản DIV.INP:

  • Dòng đầu tiên chứa hai số nguyên dương N và Q lần lượt là số lượng phần tử dãy A và số lượng phần tử dãy P (1 \le N \le 10^6; 1 \le Q \le 10^5).
  • Dòng thứ hai chứa N số nguyên dương A_1, A_2,..., A_N mô tả dãy A (1 \le A_i \le 10^6).
  • Dòng thứ ba chứa Q số nguyên dương P_1, P_2,..., P_Q mô tả dãy P (1 \le P_i \le |D|, với |D| là số lượng phần tử dãy D).

Các số trên cùng một dòng cách nhau bởi dấu cách.

Output: (DIV.OUT)
  • Ghi ra file văn bản DIV.OUT duy nhất một dòng gồm Q số nguyên, cách nhau bởi dấu cách, là các phần tử trong dãy D tương ứng với các phần tử trong dãy P.

Sample

Subtask
  • Có 25\% số test ứng với 25\% số điểm của bài thoả mãn: N, Q \le 1000; A_i \le 1000 với mọi 1 \le i \le N; P_i \le 1000 với mọi 1 \le i \le Q.
  • 25\% số test khác ứng với 25\% số điểm của bài thoả mãn: A_i là số nguyên tố với mọi 1 \le i \le N.
  • 20\% số test khác ứng với 20\% số điểm của bài thoả mãn: N \le 10 000; P_i \le 2 · 10^6 với mọi 1 \le i \le Q.
  • 20\% số test khác ứng với 20\% số điểm của bài thoả mãn: P_i \le 2·10^6 với mọi 1 \le i \le Q.
  • 10\% test còn lại ứng với 10\% số điểm của bài: Không có ràng buộc gì thêm.

Trại hè Phương Nam 2024 - Từ an toàn

remyvnkhiemtruong

Phương là một người thích sự độc đáo, anh ta rất không thích sự lặp lại, ngay cả khi nó xuất hiện trong các cuộc trò chuyện hàng ngày. Phương cảm thấy khó chịu khi phải dùng các từ có quá nhiều chữ cái lặp lại. Cụ thể với một từ W bất kì, cậu định nghĩa F(W) là độ khó chịu của từ đó. F(W) được tính bằng tổng của bình phương số lần xuất hiện trong W với mỗi chữ cái. Ví dụ với W = "hello" có 2 chữ cái 'l', 1 chữ cái 'h', 1 chữ cái 'e' và 1 chữ cái 'o' có độ khó chịu là F(W) = 2^2 + 1^2 + 1^2 + 1^2 = 7.

Phương chỉ muốn sử dụng những từ an toàn, nghĩa là những từ có độ khó chịu nhỏ hơn hoặc bằng một số nguyên K cho trước.

Yêu cầu: Phương có một xâu S độ dài N chỉ gồm chữ cái in thường (từ 'a' đến 'z'). Hãy giúp Phương đếm số lượng xâu con là từ an toàn của S.

Nhắc lại, một xâu con của một xâu S cho trước là một xâu thu được khi xóa một số ký tự liên tiếp nhau (hoặc không xóa) ở đầu xâu S và một số ký tự liên tiếp nhau (hoặc không xóa) ở cuối xâu S. Ví dụ "olp" hay "psou" là xâu con của "olpsouth" trong khi "suh" thì không. Hai xâu con được coi là khác nhau nếu số lượng ký tự bị xóa ở đầu xâu khác nhau hoặc số lượng ký tự bị xóa ở cuối xâu khác nhau.

Input, Output

Input: (WORD.INP)

Vào từ file văn bản WORD.INP:

  • Dòng thứ nhất chứa hai số nguyên N và K lần lượt là độ dài của xâu S và giới hạn của từ an toàn (1 \le N \le 2 000 000, 1 \le K \le 10^{18}).
  • Dòng thứ hai chứa một xâu độ dài N chỉ gồm các chữ cái in thường mô tả xâu S.

Các số trên cùng một dòng cách nhau bởi dấu cách.

Output: (WORD.OUT)
  • Ghi ra file văn bản WORD.OUT một số nguyên duy nhất là số lượng xâu con của S là từ an toàn.

Sample

Subtask
  • Có 20\% số test ứng với 20\% số điểm của bài thoả mãn: N \le 100.
  • 20\% số test khác ứng với 20\% số điểm của bài thoả mãn: N \le 1000.
  • 20\% số test khác ứng với 20\% số điểm của bài thoả mãn: N \le 10 000.
  • 20\% số test khác ứng với 20\% số điểm của bài thoả mãn: N \le 200 000.
  • 20\% số test còn lại ứng với 20\% số điểm của bài: Không có ràng buộc gì thêm.

Số siêu nguyên tố

Số siêu nguyên tố là số nguyên tố mà khi xoá các số cuối cùng của nó đi, số còn lại vẫn là số nguyên tố.
Ví dụ: 2333 là số siêu nguyên tố vì 2333, 233, 23, 2 đều là số nguyên tố.

Cho 2 số nguyên dương a và b (a < b). Hãy in ra tất cả các số siêu nguyên tố trong đoạn [a, b].

Input, Output and Scoring

Input
  • 2 số nguyên dương a và b (1 \le a \le b \le 10^{18}).
Output
  • Danh sách số siêu nguyên tố từ a đến b
Scoring
  • Subtask 1 (40\%): 2 \le a, b \le 10^5.
  • Subtask 2 (60\%): Không giới hạn gì thêm.

Example 1

Input

3 7

Output

3 5 7

Example 2

Input

1 100

Output

2 3 5 7 23 29 31 37 53 59 71 73 79

HSG 11 Bạc Liêu 2024 - Xâu đối xứng

remyvnkhiemtruong

Sau một thời gian phấn đấu và tích cực ôn luyện trong đội tuyển, hai bạn Tí và Tèo đã vượt qua kì thi chọn học sinh giỏi cấp trường, chính thức được chọn vào đội tuyển học sinh giỏi môn Tin học của trường XYZ tham dự kì thi chọn học sinh giỏi cấp tỉnh. Lần này, hai bạn được thầy dạy rất nhiều chuyên đề chuyên sâu trong lập trình. Khi học đến chuyên đề về xâu kí tự, Tí biết rằng xâu đối xứng (palindrome) là xâu nếu như khi đọc xâu này từ trái sang phải hay từ phải sang trái thì xâu đó không thay đổi.

Ví dụ: Các xâu: "ioi", "madam", "abba" là các xâu đối xứng, còn các xâu: "voi", "abab", "tiok" không phải là các xâu đối xứng.

Tí nhận thấy rằng, nếu như coi xâu chỉ gồm một kí tự cũng là một palindrome thì một xâu kí tự bất kì có thể biểu diễn như một dãy các palindrome.

Ví dụ: Xâu "banana" có thể biểu diễn dưới dạng dãy các palindrome theo nhiều cách, chẳng hạn:

  • "banana" = "b" + "anna"
  • "banana" = "b" + "ana" + "n" + "a"
  • "banana" = "b" + "a" + "nan" + "a"
  • ...

Tí liền hỏi bạn Tèo: Nếu cho xâu kí tự S chỉ gồm các kí tự chữ cái in thường thì trong cách biểu diễn dưới dạng dãy các palindrome, cách nào thu được số lượng palindrome ít nhất.

Yêu cầu: Hãy lập trình giúp Tí và Tèo tìm ra cách biễu diễn xâu S dưới dạng một dãy gồm ít nhất các palindrome.

Input, Output

Input: (stdin)
  • Một dòng duy nhất chứa xâu kí tự S có độ dài không vượt quá 1000
Output: (stdout)
  • Ghi ra một số nguyên duy nhất là số lượng ít nhất các palindrome trong biểu diễn tìm được.

Sample

Input 1 (stdin)
banana
Output 1 (stdout)
2
Input 2 (stdin)
bobseesanna
Output 2 (stdout)
3

HSG 11 Bạc Liêu 2024 - Xây cầu

remyvnkhiemtruong

Bạc Liêu nổi tiếng với nhiều địa điểm du lịch thu hút khách du lịch khắp nơi trên cả nước đến tham quan như: Cánh đồng điện gió, Khu du lịch Giồng Nhãn, Quan âm Phật đài, Khu di tích nhạc sĩ Cao Văn Lầu,... Để đáp ứng nhu cầu du lịch ngày càng cao của du khách, dọc theo bờ biển Bạc Liêu mọc lên nhiều địa điểm vui chơi, tham quan, nghỉ dưỡng.

Khu du lịch Biển nhân tạo Bạc Liêu được thiết kế gồm N hòn đảo nhân tạo được đánh số thứ tự từ 1 đến N, một số hòn đảo đã có sẵn cầu nối với nhau để có thể đi qua lại giữa hai đảo. Hai đảo bất kì có không quá một cây cầu nối với nhau. Từ đảo nào du khách có thể đi sang đảo kia bằng cầu nối trực tiếp hoặc đi gián tiếp qua các đảo khác.

Để thuận tiện cho các phương tiện đi lại và giúp cho du khách có thể tham quan toàn bộ khu du lịch, Ban Quản lý khu du lịch dự kiến sẽ xây dựng thêm một số cây cầu, để từ bất kì một đảo nào đó du khách có thể đi đến tất cả các đảo còn lại trong khu du lịch. Nhằm tiết kiệm chi phí, Ban Quản lý muốn số lượng cầu xây thêm là ít nhất.

Yêu cầu: Hãy lập trình cho biết, Ban Quản lý cần xây thêm ít nhất bao nhiêu cây cầu để du khách có thể từ bất kì một đảo nào đó đi đến tất cả các đảo còn lại trong khu du lịch

Input, Output

Input: (stdin)
  • Dòng đầu ghi hai số nguyên dương N và M, lần lượt là số lượng đảo và số cầu nối (N, M \le 3000)
  • M dòng tiếp theo, mỗi dòng ghi hai số nguyên dương u và v (u \not = v) thể hiện có cầu nối giữa hai đảo u và v (u, v \le N)
Output: (stdout)
  • Ghi ra một số nguyên duy nhất là số lượng cầu ít nhất mà Ban Quản lý khu du lịch cần xây thêm để đáp ứng yêu cầu trên.

Sample

Input (stdin)
12 7
6 10
2 1
5 2
2 6
3 4
9 12
11 9
Output (stdout)
4

HSG 11 Bạc Liêu 2024 - Số nguyên tố vòng

remyvnkhiemtruong

Nam là người yêu thích số học, khi học về số nguyên tố, Nam thấy nó có nhiều tính chất thú vị. Nam tưởng tượng các chữ số của một số nguyên dương được xếp trên một vòng tròn. Ví dụ: số 197 được bố trí vòng tròn như hình sau:

Khi đọc các chữ số theo chiều kim đồng hồ Nam thu được các số: 197, 971 và 719. Điều thú vị ở đây là các số này đều là những số nguyên tố. Chính vì vậy, số 197 được gọi là số nguyên tố vòng. Nam quy ước rằng số nguyên tố có một chữ số cũng là số nguyên tố vòng.

Yêu cầu: Hãy lập trình giúp Nam đếm xem có bao nhiêu số nguyên tố vòng nhỏ hơn số nguyên N cho trước.

Input, Output

Input: (stdin)
  • Gồm 1 dòng duy nhất chứa số nguyên dương N (1 \le N \le 10^{6})
Output: (stdout)
  • Ghi ra số lượng các số nguyên tố vòng nhỏ hơn N

Sample

Input (stdin)
100
Output (stdout)
13

HSG 10 Bạc Liêu 2024 - Tổng

remyvnkhiemtruong

Trên một vòng tròn người ta đánh dấu N vị trí. Các vị trí được dánh số thứ tự từ 1 đến N theo chiều kim đồng hồ. Tại vị trí i người ta ghi số nguyên a_{i} (i=1, 2,..., n).

Yêu cầu: Tìm cách chọn ra dãy con gồm các số liên tiếp trên vòng tròn (cùng chiều kim đồng hồ) có tổng các số hạng là lớn nhất.

Input, Output

Input: (stdin)
  • Dòng đầu tiên ghi số nguyên dương N (N \le 10^{6})
  • Dòng thứ i trong số N dòng tiếp theo ghi số a_{i} (|a_{i}| \le 32000,i=1,2,...,n)
Output: (stdout)
  • Ghi ra một số duy nhất là tổng lớn nhất của các số trong dãy con

Sample

Input (stdin)
11
-10
-1
-3
5
6
-4
-9
20
-5
7
-3
Output (stdout)
22

HSG 10 Bạc Liêu 2024 - Kiểm tra

remyvnkhiemtruong

Tại một quần đảo có n hòn đảo và n-1 cây cầu, mỗi cây cầu nối hai hòn đảo lại với nhau. Đảm bảo rằng từ một hòn đảo bất kì luôn có thể đến được hết hòn đảo còn lại. An nhận nhiệm vụ đi kiểm tra các cây cầu trong d ngày. An đưa ra một lịch trình như sau: vào mỗi ngày sẽ đi kiểm tra mọi cây cầu trên đường đi từ đảo i đến đảo j

Yêu cầu: Cho biết sau khi An thực hiện xong d ngày đó, thì còn có bao nhiêu cây cầu chưa kiểm tra?

Input, Output

Input: (stdin)
  • Dòng thứ nhất: Số nguyên n (2 \le n \le 10^{4}) là số lượng hòn đảo
  • n+1 dòng tiếp theo: mỗi dòng chứa 2 số nguyên i và j thể hiện có một cây cầu nối giữa đảo i đên đảo j
  • Dòng thứ n+1: Số nguyên d (1 \le d \le 100) là số ngày kiểm tra
  • d dòng tiếp theo: mỗi dòng chứa 2 số nguyên i và j thể hiện ngày hôm đó An sẽ đi kiểm tra mọi cây cầu trên đường đi từ đảo i đến đảo j
Output: (stdout)
  • Gồm một số nguyên duy nhất thể hiện số cây cầu chưa được kiểm tra

Sample

Input (stdin)
8
1 3
1 5
2 3
4 5
4 6
4 7
4 8
2
3 4
5 6
Output (stdout)
3

HSG 10 Bạc Liêu 2024 - Cực trị

remyvnkhiemtruong

Cho mảng 2 chiều A có kích thước M × N số nguyên. Phần tử A_{i, j} được gọi là cực trị khi nó lớn hơn hoặc nhỏ hơn các phần tử xung quanh

Yêu cầu: Hãy lập chương trình tính tổng các phần tử cực trị của mảng A

Input, Output

Input: (stdin)
  • Dòng đầu tiên gồm 2 số M, N (3 \le M \le 10^{4}; 3 \le N \le 20)
  • M dòng tiếp theo, mỗi dòng gồm có N số nguyên của mảng A
Output: (stdout)
  • Ghi ra tổng tìm được

Sample

Input (stdin)
4 5
4 7 4 7 8
4 8 2 5 9
3 7 3 6 4 
1 4 5 1 2
Output (stdout)
19
Note
  • Có 3 phần tử cực trị trong mảng là 8, 9 và 2 => 8+9+2=19.

TLE Speedrun - Tích hai số

Sunlight
Input và Output
Input
  • Hai số nguyên dương A, B (1 \le A, B \le 10^9).
Output
  • Giá trị A \times B.
Sample
Input
2 3
Output
6

TLE Speedrun - Căn bậc hai

Sunlight
Input và Output
Input
  • Một số nguyên dương A (1 \le A \le 10^9).
Output
  • Giá trị \sqrt{A} làm tròn đến 6 chữ số sau dấu thập phân.
Sample
Input
1
Output
1.000000

TLE Speedrun - Chuỗi ký tự

Sunlight
Input và Output
Input
  • Một số nguyên dương A (1 \le A \le 10^9).
Output
  • Ký tự thứ A của chuỗi lặp lại TLEOJTLEOJTLEOJ....
Sample
Input
10
Output
J

TLE Speedrun - Ước chung nhỏ nhất

Sunlight
Input và Output
Input
  • Hai số nguyên dương A, B (1 \le A, B \le 10^9).
Output
  • Ước chung nhỏ nhất của A và B.
Sample
Input
2 3
Output
-1

TLE Speedrun - Tích lớn nhất

Sunlight
Input và Output
Input
  • Dòng đầu tiên gồm một số nguyên dương N (2 \le N \le 10^5).
  • Dòng tiếp theo gồm N số nguyên A_1, A_2, ..., A_N (|A_i| \le 10^9).
Output
  • Tích của hai số lớn nhất trong dãy A.
Sample
Input
4
-1 0 1 2
Output
2

TLE Speedrun - Cặp số nguyên

Sunlight
Input và Output
Input
  • Một số nguyên dương N (1 \le N \le 10^9).
Output
  • Số cặp số nguyên không âm (A, B) mà A + B \le N
Sample
Input
1
Output
3

TLE Speedrun - Tổng các tổng

Sunlight
Input và Output
Input
  • Một số nguyên dương N (1 \le N \le 10^5).
  • N số nguyên dương A_1, A_2, ..., A_N (A_i \le 10^6).
Output
  • Tổng các giá trị A_i + A_j với 1 \le i < j \le N.
Sample
Input
3
1 2 3
Output
12

TLE Speedrun - Lũy thừa

Sunlight
Input và Output
Input
  • Hai số nguyên dương A, B (A, B \le 10^9).
Output
  • 0 nếu A^B = B^A, 1 nếu A^B > B^A, 2 nếu A^B < B^A.
Sample
Input
2 2
Output
0