CONTEST 101: KIỂM TRA ĐỊNH KỲ LỚP 9

Số chặt chẽ

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 10

Số chặt chẽ là một số nguyên không nhỏ hơn 10 và ta không thể tìm được cách hoán đổi vị trí của hai chữ số trong số đó để được một số mới lớn hơn nó. Ví dụ: 123 không phải là số chặt chẽ, 231 không phải là số chặt chẽ nhưng 321 là số chặt chẽ. Với một số nguyên không nhỏ hơn 10, nếu nó không phải là số chặt chẽ thì ta có thể biến đổi thành số chặt chẽ bằng cách thay đổi vị trí các chữ số có mặt trong số đó.

Yêu cầu: Bạn hãy lập trình tìm số chặt chẽ từ một số ngu ~N~ không nhỏ hơn 10 cho trước.

Dữ liệu vào:

  • Nhập từ bàn phím số nguyên ~N~ (~10 ≤ N ≤ 10^9~).

Kết quả:

  • In ra màn hình theo dạng mẫu trong hai ví dụ sau:

Input1

12341234

Output1

44332211

Input2

4321 

**Output2**

4321 ```


Số chính phương hoàn hảo

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 20

Số chính phương hoàn hảo là số được tạo bởi bình phương của số nguyên tố đẹp, số nguyên tố đẹp là số nguyên tố viết từ trái sang phải cũng giống như từ phải sang trái. Ví dụ: 4 = 2x2; 16= 4x 4; 36= 6 x 6; 121=11 x 11, 169= 13 x 13, vậy nên số 4 và 121 là số chính phương hoàn hảo, còn số 169 và 36 không phải số chính phương hoàn hảo.

Yêu cầu: Cho 2 số nguyên dương ~a,b~. In ra các số chính phương hoàn hảo trong đoạn ~[a,b]~.

Dữ liệu vào :

  • 2 số nguyên dương a,b (~2≤ a≤b≤ 10^{14}~)

Dữ liệu ra:

  • In ra các số chính phương hoàn hảo trong đoạn ~[a,b]~. Nếu không tìm thấy số chính phương nào thì in ra -1.

Ví dụ:

Intput

10 150

Output

25 49 121

Ràng buộc:

  • 30% test tương ứng với 30% số điểm ứng với ~2 ≤ a ≤ b ≤ 10^5~
  • 70% test tương ứng với 30% số điểm ứng với ~2 ≤ a ≤ b ≤ 10^{14}~

Ước nguyên tố lớn nhất

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 20

Số nguyên tố là số chỉ có 2 ước số 1 và chính nó.

Yêu cầu: cho dãy số gồm có n phần tử hãy tìm ước nguyên tố lớn nhất của từng phần tử trong dãy đã cho.

Dữ liệu vào:

  • Dòng đầu ghi số ~n~ (~0≤n≤10^6~).
  • Dòng tiếp theo ghi giá trị dãy số ~a_1,a_2,…a_n~ (~1≤a_i≤10^6~) các số cách nhau một dấu cách.

Kết quả:

  • Gồm 1 dòng ghi lần lượt các ước nguyên tố tương ứng của từng phần tử trong dãy.

Ví dụ:

Input

10
2 3 6 9 10 11 13 17 23 22

Output

2 3 3 3 5 11 13 17 23 11

Ghép cặp (TS10 Ninh Bình)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 20

Trong một hệ thống ngân hàng điện tử, mỗi giao dịch được ghi nhận là một số nguyên đại diện cho số tiền đã giao dịch (số tiền có thể là số âm, dương hoặc bằng 0 ứng với các giao dịch như rút tiền, gửi tiền, tra cứu số dư …). Để phát hiện các hành vi gian lận, bộ phận bảo mật muốn kiểm tra xem có bao nhiêu cặp giao dịch có tổng đúng bằng một giá trị khả nghi ~x~ nào đó (ví dụ như tổng tiền bị mất, hoặc giá trị cụ thể của một giao dịch đáng ngờ).

Cho số lượng giao dịch cần phải kiểm tra là ~n~, số tiền trong từng giao dịch lần lượt là các số nguyên ~a_1, a_2, . . . a_n~ (trong đó ~|a_i|≤ 10^9~, ~1 ≤ n ≤ 10^5~). Với số nguyên ~x~ cho trước (~1≤ x ≤ 10^9~), bạn hãy viết một chương trình giúp bộ phận bảo mật kiểm tra số lượng cặp giao dịch (~i~, ~j~) thỏa mãn các điều kiện:

• ~a_i + a_j = x~

• ~1 ≤ i < j ≤ n~

Dữ liệu vào:

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~x~.

  • Dòng thứ 2 chứa ~n~ số nguyên ~a_1, a_2, . . . a_n~

Mỗi số trên cùng một dòng ghi cách nhau ít nhất một dấu cách.

Kết quả:

  • Gồm một dòng chứa một số nguyên duy nhất là số cặp (~a_i, a_j~) tìm được.

Ví dụ:

Input

9 13
5 12 7 10 9 1 2 3 11

Output

3

Ràng buộc:

• Sub 1: 50% số test có ~n ≤5000~.

• Sub 2: 50% số test còn lại không có ràng buộc gì thêm.


Hình vuông con

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 30

Cho lưới ô vuông ~A~ kích thước ~N~ x ~N~. Các dòng được đánh số 1 đến ~N~ từ trên xuống dưới, các cột được đánh số 1 đến ~N~ từ trái qua phải. Ô nằm trên giao giữa dòng ~i~ và cột ~j~ được gọi là ô (~i,j~) và trên đó có ghi một số nguyên dương ~A_{ij}~ (~1 ≤ i, j ≤ N~).

Yêu cầu: Hãy lập trình chọn một ô vuông con có kích thước ~K~ x ~K~ có tổng giá trị của tất cả các ô của hình vuông con là lớn nhất.

Dữ liệu vào:

• Dòng đầu tiên chứa hai số nguyên dương ~N~, ~K~ (~N ≤ 10^3~, ~K ≤ N~).

• Dòng thứ i trong số ~N~ dòng tiếp theo chứa ~N~ số nguyên dương, số thứ j là ~A_{ij}~ (~A_{ij} ≤ 10^3~)

Dữ liệu ra:

  • Một số nguyên dương là tổng giá trị lớn nhất theo yêu cầu đề ra.

Ví dụ:

Input

4 3 
1 9 1 1 
9 9 9 9 
1 9 9 9 
1 9 9 14 

Output

86

Ràng buộc:

  • Có 70% số test ~N<10~ và ~k<10~.
  • Có 30% test còn lại không có ràng buộc gì thêm