You are on page 1of 3

1.

REPLACE1
Cho xâu 𝑠 độ dài 𝑛 chỉ gồm các chữ số. Người ta thay thế một đoạn liên tiếp các chữ số của xâu 𝑠
bằng tổng các chữ số trong đoạn đó. Ví dụ với xâu 𝑠 = ′2111111111117′ ta thay thế đoạn chứa
11 số 1 liên tiếp được xâu 𝑡 =′ 2117′ .
Yêu cầu: Cho hai xâu 𝑠 và 𝑡 chỉ gồm các chữ số, Hãy xác định các vị trí đầu và cuối của xâu 𝑠 cần
thay thế để nhận được xâu 𝑡 với số ký tự cần thay thế trong xâu 𝑠 là nhiều nhất có thể.
INPUT
Dòng đầu chứa xâu 𝑠. Dòng thứ hai chứa xâu 𝑡. Mỗi xâu có độ dài không quá 106
OUTPUT
In ra trên một dòng 2 số nguyên xác định các vị trí đầu và cuối của đoạn cần thay thế trong xâu 𝑠.
Nếu tồn tại nhiều đáp án, in ra lời giải có vị trí đầu nhỏ nhất.

REPLACE1.INP REPLACE1.OUT
2111111111117 2 12
2117

2. SEGMENTS
Cho một dãy gồm 𝑛 số nguyên dương 𝑎1 , 𝑎2 , … , 𝑎𝑛 . Hãy phân dãy thành nhiều nhất các đoạn liên
tiếp có tổng bằng nhau.
INPUT
Dòng đầu tiên ghi số 𝑛 (1 ≤ 𝑛 ≤ 106 ). Dòng thứ hai ghi 𝑛 số nguyên dương 𝑎1 , 𝑎2 , … , 𝑎𝑛 , mỗi số
có giá trị không quá 106 .
OUTPUT
In ra số đoạn nhiều nhất tìm được.
SEGMENTS.INP SEGMENTS.OUT
10
4
1 2 3 6 3 3 2 2 1 1

3. SUM2
Cho mảng n * m phần tử. Có q truy vấn có dạng (l1, r1, l2, r2, x) tức tăng tất cả các phần tử
aij một lượng là x mà l1 <= i <= l2 và r1 <= j <= r2. In ra mảng sau khi xử lý hết truy vấn.
INPUT
- Số n và m.
- n dòng gồm m số aij là các phần tử của mảng.
- Số q.
- Sau đó q cặp số (l1, r1, l2, r2, x)
RÀNG BUỘC
- n, m <= 500
- q <= 105
- |ai|, |x| <= 109
OUTPUT: In ra mảng sau tất cả truy vấn

SUM2.INP SUM2.OUT
3 3 4 5 3
1 2 3 4 5 3
1 2 3 1 2 0
1 2 3
2
1 1 2 2 3
3 3 3 3 -3

4. POWER
Cho 𝑛 số nguyên dương 𝑎1 , 𝑎2 , . . , 𝑎𝑛 và số nguyên dương 𝑘.
Hãy tìm số nguyên dương 𝐵 sao cho
- 𝐵 nhỏ nhất
- 𝐵 = 𝑐 𝑘 (𝑐 > 0)
- 𝐵 ⋮ 𝑎𝑖 (𝑖 = 1, . . , 𝑛)
INPUT
Dòng 1: Số nguyên dương 𝑛 và 𝑘 (0 < 𝑛 < 10 000; 0 < 𝑘 < 1 000)
Dòng 2: 𝑛 số nguyên dương 𝑎1 , 𝑎2 , . . , 𝑎𝑛 (0 < 𝑎𝑖 < 43, 𝑖 = 1. . 𝑛)
OUTPUT
Một số duy nhất là số nguyên dương 𝑐
Ví dụ:
POWER.INP POWER.OUT
4 3 30
3 4 5 6

5. CHANGE
Tại vương quốc HT có 𝑛 đồng xu mệnh giá 𝑎1 , 𝑎2 , . . , 𝑎𝑛 , trong đó có đồng xu mệnh giá 1 đồng. HD
và HP đều có số lượng vô hạn các đồng xu với đủ các mệnh giá. HP cần đưa cho em HD một khoản
tiền là 𝑠 đồng để mua kem, HP đưa cho em HD một số đồng xu và HP phải trả lại cho Anh một số
đồng xu nếu số tiền Anh HP đưa lớn hơn 𝑠.
Hãy tính tổng số đồng xu tối thiểu mà HD và HP phải trao đổi để em HP nhận được đúng 𝑠 đồng.
INPUT:
- Dòng 1: Hai số nguyên dương 𝑠, 𝑛 (1 < 𝑠 < 10 000; 2 < 𝑛 < 100)
- Dòng 2: 𝑛 số nguyên dương 𝑎1 , 𝑎2 , . . , 𝑎𝑛 (𝑎𝑖 ≤ 3 000, 𝑖 = 1. . 𝑛)
OUTPUT:
Một số nguyên duy nhất là đáp án.

CHANGE.INP CHANGE.OUT
50 6 4
1 2 3 7 27 33

Giải thích 50 = 27 + 27 − 1 − 3
6. SUM4
Cho mảng n phần tử. Có q truy vấn có dạng (l, r, k, x) tức tăng tất cả các số từ l đến r mà
đồng dư với l, r mod k một lượng là x. In ra mảng sau khi thực hiện tất cả truy vấn.
INPUT
Số n.
n số ai tức các phần tử của mảng.
Số q.
q cặp số (l, r, k, x).
Đảm bảo l và r cùng đồng dư mod k.
1 ≤ n, q ≤ 105
0 ≤ |ai|, |x| ≤ 109
OUTPUT: In ra cả mảng sau tất cả truy vấn.
SUM4.INP SUM4.OUT
5 114 3 12 101 10
4 3 2 1 0
2
1 5 2 10
1 4 3 100

7. NOTFIB
Không phải kí ức tuổi thơ của ai cũng đầy ắp niềm vui với những bài in ra cả mảng sau
khi xử lý hết truy vấn. Hôm nay bạn sẽ được sống lại với niềm vui tuổi thơ đó.
Ta định nghĩa:
f(i) = a ∗ f(i−2) + b ∗ f(i−1)
với f(1) và f(2) là hai giá trị được định nghĩa trước.
Bạn có mảng gồm n phần tử đánh số từ 1 đến n và có q truy vấn, truy vấn thứ i gồm 2 số
l, r và bạn cần phải tăng phần tử thứ i một lượng là f(i−l+1) với mọi i nằm giữa l và r.
In ra cả mảng sau khi hết truy vấn mod 109 + 7.
INPUT
Dòng một gồm hai số n và q.
Dòng hai gồm hai số f(1) và f(2).
Dòng ba gồm 2 số a và b.
Dòng thứ 4 gồm n số xi ám chỉ mảng ban đầu.
q dòng sau, mỗi dòng gồm hai số l và r.
1 ≤ n, q ≤ 105; 1 ≤ l ≤ r ≤ n; 1 ≤ f(1), f(2), a, b ≤ 109; 0 ≤ xi ≤ 109
OUTPUT: In ra cả mảng sau tất cả truy vấn.
NOTFIB.INP NOTFIB.OUT
66 222579
11
11
000000
45
22
16
11
44
56

You might also like