Tải bản đầy đủ (.pdf) (28 trang)

Bài tập Pascal hay cơ bản và nâng cao

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.86 MB, 28 trang )

ACCEPTED
Tí và Sửu mới tập code. Vì vậy, code để biên dịch được đã khó, code để bài nộp đạt
yêu cầu còn khó hơn. Hôm nay, thầy Dần cho Tí và Sửu N bài tập. Bài tập thứ i có
giá trị điểm bằng ai . Điểm số của mỗi người sẽ bằng tổng giá trị điểm của các bài
tập mà người đó làm được. Vì không muốn bị phạt, Tí và Sửu tìm đến Mão nhờ sự
trợ giúp.
Mão đặt vào một chiếc hộp đen N lá thăm, ghi các số từ 1 đến N và không có
hai lá thăm nào ghi cùng số. Tí và Sửu sẽ lần lượt bốc ngẫu nhiên một lá thăm trong
chiếc hộp đen. Sau khi bốc được một lá thăm ghi số X , Mão sẽ code cho người rút
được lá thăm này bài tập X . Tí và Sửu sẽ thay phiên nhau bốc các lá thăm cho đến
khi chiếc hộp đen không còn lá thăm nào.
Hãy tìm chênh lệch điểm tối đa giữa Tí và Sửu.
Dữ liệu

• Dòng đầu tiên chứa số nguyên N , là số lượng bài tập (1 ≤ N ≤ 50).
• Dòng thứ hai chứa N số nguyên a1 , a2 , ..., aN (1 ≤ ai ≤ 50), là điểm số của các
bài tập.
Kết quả

• In ra chênh lệch điểm tối đa giữa Tí và Sửu.
Ví dụ
Sample Input
3
1 2 3

Sample Output
4

1



BARONS
Trên một bàn cờ kích thước vô hạn, bạn đặt một quân cờ đặc biệt tên là “Barons”
tại vị trí (0,0). Barons sẽ di chuyển theo hai quy tắc sau:

• Tại bước đầu tiên, Barons di chuyển đến ô (K1 ,1) với K1 là một số nguyên
dương.
• Tại bước thứ i, Barons di chuyển từ ô (x, y) đến ô (x + Ki , y + 1), với điều kiện
Ki là một số nguyên dương lớn hơn Ki−1 .
Nếu Barons di chuyển vào một ô chứa tiền xu, nó sẽ bỏ túi đồng xu đó. Hãy tính
xem Barons có thể bỏ túi được nhiều nhất bao nhiêu đồng xu?
Dữ liệu

• Dòng đầu tiên chứa số nguyên N (1 ≤ N ≤ 50) là số đồng xu.
• N dòng tiếp theo, mỗi dòng chứa hai số nguyên (xi , yi ) là tọa độ của đồng xu
thứ i (1 ≤ xi , yi ≤ 10000).
Kết quả

• In ra số đồng xu tối đa Baron có thể bỏ túi.

1


Ví dụ
Sample Input

Sample Output

3
15 4
5 5

30 6

2

1
10 10

0

6
1 1
3 2
6 3
10 4
15 5
21 6

6

2


COLTRI
Cho điểm trên mặt phẳng, không có ba điểm nào thẳng hàng, các điểm được đánh
số từ 1 đến n. Người ta nối tất cả các cặp điểm (i,j) bằng sợi dây màu xanh hoặc
màu vàng theo nguyên tắc: Nếu là i+j số nguyên tố thì điểm i nối với điểm j bằng
sợi dây màu xanh, ngược lại nếu i+j không phải số nguyên tố thì nối bằng sợi dây
màu vàng. Sau đó người ta muốn khảo sát xem có bao nhiêu hình tam giác mà ba
đỉnh là 3 điểm trong n điểm được nối với nhau bằng các sợi dây cùng màu.
Yêu cầu: Cho n, hãy đếm số hình tam giác mà ba đỉnh là 3 điểm trong n điểm được

nối với nhau bằng các sợi dây cùng màu.
Dữ liệu:
 Dòng đầu tiên ghi số nguyên dương T (T ≤ 10) là số lượng bộ dữ liệu. Tiếp
đến là T dòng, mỗi dòng tương ứng với một bộ dữ liệu chứa một số nguyên n.
Kết quả: Gồm T dòng, mỗi dòng chứa một số nguyên là số tam giác đếm được
tương ứng với bộ dữ liệu vào.

Ví dụ:
SAMPLE INPUT

SAMPLE OUTPUT

2

0

3

1

5

Giới hạn:
Subtask 1: n ≤ 100;

[30 tests]

Subtask 2: n ≤ 1000;

[30 tests]


Subtask 3: n ≤ 106.

[30 tests]


GAMES
An và Bình chơi trò chơi như sau: An viết một dãy liên tiếp gồm N số 0 hoặc
1. Sau đó Bình lần lượt hỏi An các câu hỏi có dạng: Đoạn từ i đến j có chẵn
số 1 hay lẻ số 1 (i ≤ j ) An sẽ trả lời đoạn từ i đến j là chẵn hay lẻ số 1. Nhưng
sau một số lần hỏi, Bình biết được là An đã không trả lời đúng các câu hỏi của mình.
Yêu cầu: Cho các câu hỏi của Bình và các câu trả lời của An, hãy lập trình giúp
Bình tìm ra câu trả lời cuối cùng chưa mâu thuẫn.
Dữ liệu

• Dòng đầu tiên là số N .
• Dòng thứ hai là số K - số câu hỏi được trả lời.
• K dòng sau, mỗi dòng mô tả câu hỏi và trả lời có dạng: hai số nguyên dương i, j
cách nhau một dấu cách và cách đó một dấu cách là một xâu “odd” hay “even”.
Kết quả

• Thứ tự câu trả lời cuối cùng chưa mâu thuẫn.
Ví dụ
Sample Input
5
2
1 2 odd
1 2 even

Sample Output

1

1


MINLEX2
Cho hai số nguyên dương 1 ≤ L ≤ R ≤ 109 và số nguyên dương k (k ≤ 109 ).
Tìm số X có thứ tự từ điển nhỏ nhất thỏa mãn L ≤ X ≤ R và chia hết cho k .
Dữ liệu

• Gồm nhiều dòng, mỗi dòng chứa ba số nguyên L, R, k
Kết quả

• Gồm nhiều dòng, mỗi dòng chứa số X tìm được tương ứng với dữ liệu vào, nếu
không tồn tại ghi -1.
Ví dụ
Sample Input
4 7 5
11 19 10
4 111 20

Sample Output
5
-1
100

1


MUTATION

Các nhà khoa học hành tinh Olimpia hàng năm tiến hành khảo sát các dạng đột
biến khác nhau của bộ gen của các sinh vật nguyên thuỷ. Bộ gen của các sinh
vật như vậy có thể biểu diễn bởi đây gồm N số nguyên không âm, được đánh
số từ trái sang phải bắt đầu từ 1 đến N, mỗi số không vượt quá N. Các bộ gen
luôn đột biến không ngừng. Ở mỗi giai đoạn bộ gen biến đổi như sau:
 Ở vị trí đầu tiên sẽ ghi số lượng số 1 trong bộ gen ban đầu;
 Ở vị trí thứ hai sẽ ghi số lượng số 2 trong bộ gen ban đầu;
 ...
 Ở vị trí thứ N sẽ ghi số lượng số bằng N trong bộ gen ban đầu.
Chẳng hạn, bộ gen [1, 2, 3] gồm gồm một số 1, một số 2 và một số 3 sau khi đột
biến sẽ trở thành [1, 1, 1]. Một số ví dụ khác nữa:
 [1,2,2,3,3,3] → [1,2,3,0,0,0].
 [7,7,7,4,7,4,4] → [0,0,0,3,0,0,4].
Tiếp theo bộ gen lại tiếp tục biến đổi theo qui tắc đã nêu.
Yêu cầu: Cho biết thông tin về bộ gen ở trạng thái ban đầu, hãy xác định bộ gen
sau K lần đột biến.

Dữ liệu
 Dòng đầu tiên chứa hai số nguyên N và K (1 ≤ N ≤ 105, 1 ≤ K ≤ 109) là
kích thước của bộ gen và số lần đột biến.
 Dòng thứ hai chứa N số nguyên không âm, mỗi số không vượt quá N mô
tả trạng thái ban đầu của bộ gen.


Kết quả
 Gồm N số nguyên không âm được ghi cách nhau bởi dấu cách là bộ gen
sau K lần biến đổi

Ví dụ


Sample input
4 2
1 3 1 4

Sample output
2 1 0 0

Giải thích
Đầu tiên bộ gen [1,3,1,4] đột biến thành [2,0,1,1], sau đó bộ gen tiếp tục đột
biến thành [2,1,0,0].


ODD

Cho dãy số nguyên a gồm n phần tử với n là số lẻ. Trong dãy này có một giá
trị xuất hiện lẻ lần, các giá trị còn lại xuất hiện chẵn lần. Tìm giá trị xuất
hiện lẻ lần.
Input
• Dòng đầu tiên chứa số nguyên dương n (1 ≤ n ≤ 2.105).
• Dòng thứ hai chứa n số nguyên không âm là các phần tử của dãy a.
Các số này nhỏ hơn hoặc bằng 109.
Output
• In ra giá trị xuất hiện lẻ lần.
Sample input
7
2 2 1 1 1 2 1
3
4 1 1
11
3 20 4 20 3 18 4 4 2 18 4


Sample output
2
4
2


Buổi tiệc

Tên chương trình: PARTY.PAS

Một công ty có N nhân viên được đánh số từ 1 đến N. Mỗi nhân viên có tối đa một
cấp trên trực tiếp. Một nhân viên A được gọi là cấp trên của nhân viên B nếu thỏa
mãn một rong hai điều kiện sau:
 Nhân viên A là cấp trên trực tiếp của nhân viên B;
 Nhân viên B có cấp trên trực tiếp là nhân viên C và nhân viên A là cấp trên
của nhân viên C.
Công ty không tồn tại một quan hệ vòng giữa các nhân vên nghĩa là A là cấp trên
trên của B và B là cấp trên của C đồng thời C là cấp trên của A.Nhân viên A cũng
không thể là cấp trên của chính họ.
Sắp đến công ty sẽ tổ chức một buổi tiệc kĩ niệm ngày thành lập công ty. Tất cả N
nhân viên đều tham gia và được chia thành các nhóm, mỗi nhân việc tham gia vào
duy nhất một nhóm. Để cho các thành viên trong nhóm thoải mái nhất nên ban tổ
chức muốn tổ chức mỗi nhóm thỏa mãn không tồn tại hai thành viên của nhóm có
quan hệ cấp trên cấp dưới, nghĩa là không tồn tại A là cấp trên của B hoặc B là cấp
trên của A trong bất kì nhóm nào.
Hãy giúp ban tổ chức tính xem số nhóm ít nhất là bao nhiêu?
Dữ liệu vào: tệp văn bản PARTY.INP có cấu trúc như sau:
 Dòng đầu ghi N là số nhân viên (1≤N≤100000);
 N dòng tiếp theo, dòng thứ i ghi số nguyên Pi (1≤Pi≤N hoặc Pi=-1) xác

định cấp trên trực tiếp của nhân viên thứ i. Pi=-1 nghĩa là nhân viên này
không có cấp trên trực tiếp.
Kết quả: ghi ra tệp văn bản PARTY.OUT duy nhất số nhóm ít nhất sắp được.
Ví dụ:
PARTY.INP PARTY.INP
Giải thích
5
3
Các nhân viên được xếp như sau:
-1
 Nhóm 1: {1}
1
 Nhóm 2: {2,4}
2
 Nhóm 3: {3,5}
1
-1
Giới hạn: 50% test có N≤500.


PERIOD
Cho 2 xâu A và B chỉ gồm các kí tự Latin in thường (từ a đến z).
Định nghĩa:

• B là tiền tố của A, nếu như việc bỏ đi một số kí tự ở cuối xâu A (có thể không
bỏ kí tự nào) sẽ thu được xâu B . Ví dụ, ab, abc, abced được gọi là tiền tố của
abced, nhưng abcd thì không
• B là tiền tố thực sự của A, nếu B là tiền tố của A và B khác A (tức phải bỏ đi
ít nhất 1 kí tự ở A).
• B là chu kì của A, nếu B là tiền tố thực sự của A, và A là tiền tố (không cần

phải thực sự) của xâu B + B (viết liền hai xâu B vào với nhau). Ví dụ, với xâu
abababa, hai xâu abab và ababab là chu kì của nó.
• B là chu kì dài nhất của A, nếu B thỏa mãn là chu kì của A và có độ dài lớn
nhất.
Nhiệm vụ của bạn là viết chương trình thực hiện:

• Đọc vào xâu S .
• Tính tổng độ dài các chu kì dài nhất của tất cả các tiền tố của S .
• Đưa ra kết quả chuẩn.
Dữ liệu

• Dòng đầu tiên gồm một số nguyên k (1 ≤ k ≤ 106 ) là độ dài của xâu.
• Dòng tiếp theo chứa xâu kí tự độ dài k , các kí tự thuộc khoảng từ a đến z.
Kết quả

• Đưa ra đáp số tìm được.

1


Ví dụ
Sample Input
8
babababa

Sample Output
24

Giải thích
Chu kì dài nhất của các tiền tố lần lượt là: (rỗng), (rỗng), ba, ba, baba, baba, bababa,

bababa. Tổng độ dài của các xâu này là 24.

2


RACING
Bessie cần chuẩn bị cho cuộc đua xe địa hình và đã xin phép nông dân John ra
ngoài trang trại để tập luyện. Nông dân John đồng ý và yêu cầu Bessie cần trở
lại trang trại sau M giây (1 ≤ M ≤ 107).
Đường đua có độ dài T (1 ≤ T ≤ 105) được chia thành T phần độ dài như nhau.
Mỗi phần được kí hiệu bằng 1 chữ cái: u, f hoặc d, ứng với lên dốc, đường bằng
và xuống dốc. Bessie tốn U giây để hoàn thành 1 đoạn lên dốc, F giây cho 1
đoạn đường bằng và D giây cho 1 đoạn xuống dốc (1 ≤ F, U, D ≤ 100). Lưu ý
rằng, ở đoạn đường về, đoạn lên dốc lúc ban đầu sẽ trở thành đoạn xuống dốc
và ngược lại.
Xác định vị trí xa trang trại nhất mà Bessie có thể đến được và vẫn đảm bảo cô
quay về trang trại đúng thời hạn.

Dữ liệu
 Dòng 1: Năm số nguyên M, T, U, F, D
 Dòng 2..N + 1 : Dòng thứ k + 1 chứa 1 chữ cái u, f hoặc d

Kết quả
 Một dòng duy nhất là kết quả bài toán

Ví dụ


Sample input
13 5 3 2 1

u
f
u
d
f

Sample output
3

Giải thích
Với khoảng cách 3:
 Thời gian đi : 3 + 2 + 3 = 8
 Thời gian về : 1 + 2 + 1 = 4
 Tổng thời gian : 8 + 4 = 12 < 13, nên Bessie kịp về trang trại


RUN
Thành phố nọ tổ chức một cuộc thi chạy kì lạ như sau. Mạng lưới giao thông của
thành phố bao gồm N nút giao thông đánh số từ 0 đến (N − 1). Có M con đường nối
các nút này. Các con đường này là đường hai chiều. Không có con đường nào nối
một nút với chính nó và không có hai con đường nào cùng nối một cặp nút. Đánh số
các con đường từ 0 đến (M − 1). Trên con đường thứ i, ban tổ chức đặt một hộp kẹo
có 3i cái kẹo.
Mỗi thí sinh cần xuất phát từ nút 0, đi qua một số con đường để đến nút (N − 1).
Khi đi qua mỗi con đường, thí sinh cần lấy một chiếc kẹo ra khỏi hộp được đặt sẵn
trên con đường đó. Nếu trong hộp không còn kẹo thì thí sinh không được phép đi
qua.
Bạn hãy giúp ban tổ chức tính xem có tối đa bao nhiêu thí sinh có thể tham dự cuộc
thi.
Dữ liệu:

 Dòng đầu tiên chứa hai số nguyên N và M (2 ≤ N ≤ 2000, 0 ≤ M ≤ 2000). M
dòng tiếp theo mỗi dòng chứa hai số nguyên u và v (0 ≤ u, v < N) cho biết có
một con đường nối hai nút u và v. Các con đường được đánh số theo thứ tự
xuất hiện trong dữ liệu.
Kết quả: Gọi kết quả bài toán là F. Ghi ra một dòng duy nhất chứa F mod
1 000 000 007.
Ví dụ:
SAMPLE INPUT

SAMPLE OUTPUT

3 2

1

0 1
1 2
4 4
0 1
1 3
0 2
2 3

10


3 1

0


0 1
5 0

0

6 9

39

1 3
1 2
2 3
0 1
4 5
3 5
0 2
1 4
4 3


Hoàng Văn Diệu
Số rõ ràng

2016

tên file chương trình: CNUMBER.PAS

Cho số nguyên dương N, số mới được tạo ra bằng cách lấy tổng bình phương các chữ số của N. Ta
lặp lại việc tạo ra số mới từ số vừa được tạo ra. Trong quá trình lặp này, nếu có số mới được tạo ra
bằng 1 thì N là số rõ ràng, ngược lại N không phải là số rõ ràng.

Ví dụ: 19 là số rõ ràng còn 12 không phải số rõ ràng, vì:



19  82 (12+92)  68  100  1.
12  5  25  29  85  89  145  42  20  4 
16  37  58  89  145.

Yêu cầu: Hãy đếm các số rõ ràng trong đoạn từ A đến B (1 ≤ A ≤ B) .
Dữ liệu vào: từ tệp văn bản CNUMBER.INP có cấu trúc như sau:



Dòng đầu ghi số nguyên dương T (1 ≤ T ≤ 5.000) ghi số lượng bộ test;
T dòng tiếp theo, mỗi dòng ghi 2 số nguyên dương A và B.

Kết quả: ghi ra tệp văn bản CNUMBER.OUT gồm T dòng ghi kết quả tương ứng của mỗi test.
Ví dụ:
CNUMBER.INP
2
2 10
1 20

CNUMBER.OUT
2
5

Giải thích
Test 1: các số {7, 10}.
Test 2: các số {1, 7, 10, 13, 19}.


Ràng buộc:
-

Có 30% test B ≤ 1.000 tương ứng với 30% số điểm;
Có 30% test B ≤ 10.000 tương ứng với 30% số điểm;
Có 40% test 10.000 ≤ B ≤10.000.000 tương ứng 40% số điểm.


STONES
Báu vật chính của hành tinh Olympia là các viên thiên thạch thỉnh thoảng lại
rơi xuống bề mặt của hành tinh từ vũ trụ. Viên thiên thạch càng nặng càng có
giá trị hơn. Để đảm bảo hoạt động của các cơ quan hành chính trên hành tinh,
chính quyền tiến hành thu thuế từ các thành phố trên hành tinh. Từ mỗi thành
phố trong số M thành phố người ta chở về thủ đô một viên thiên thạch. Các
thành phố được đánh số từ 1 đến M. Ông Bộ trưởng tài chính chọn trong số tất
cả các viên thiên thạch viên nặng nhất để nạp vào ngân khố thay cho tiền đóng
thuế. M - 1 viên còn lại được vận chuyển trở lại thành phố mà từ đó chúng
được gửi đến. Để giảm thuế phải nộp, mỗi thành phố luôn luôn chở đến thủ đô
viên thiên thạch nhẹ nhất trong số tất cả các viên thiên thạch hiện có trong
kho thiên thạch của họ.
Yêu cầu
 Cho biết thứ tự các viên thiên thạch rơi xuống từ vũ trụ và trọng lượng
của chúng, hãy xác định với mỗi thời điểm phải đóng thuế viên thiên
thạch có trọng lượng như thế nào đã được Bộ trưởng Tài chính chọn để
nạp vào ngân khố quốc gia.
Dữ liệu
 Dòng đầu tiên chứa hai số nguyên N và M, trong đó N là số sự kiện còn M
là số lượng thành phố (2 ≤ M < N ≤ 2 x 105)
 Mỗi sự kiện có một trong hai dạng: hoặc là có viên thiên thạch rơi xuống

một thành phố nào đó (sự kiện dạng một) hoặc là Bộ Tài chính đòi đóng
thuế (sự kiện dạng hai)
 Tiếp đến là N dòng mô tả thông tin về sự kiện theo đúng thứ tự xuất
hiện. Số đầu tiên trong dòng là 1 hoặc 2 cho biết loại sự kiện.
 Nếu là sự kiện loại một, thì hai số tiếp theo trong dòng là T và W, trong
đó T là chỉ số thành phố nơi viên thiên thạch rơi xuống (1 ≤ T ≤ M), còn
W là trọng lượng của viên thiên thạch đó (1 ≤ W<109).
 Nếu là sự kiện loại hai thì dòng chỉ gồm duy nhật một số 2


Giả thiết rằng trước sự kiện đầu tiên số lượng thiên thạch trong mỗi thành phố
đều là 0.
Dữ liệu đầu vào đảm bảo thực hiện các điều kiện sau:
 Trọng lượng của các viên thiên thạch là khác nhau từng đôi
 Tại thời điểm Bộ Tài chính thu thuế mỗi một trong số M thành phố đều
có ít nhất một viên thiên thạch
 Bộ Tài chính thu thuế ít nhất một lần
Kết quả
 k dòng, trong đó k là số lượng sự kiện loại hai
 Dòng thứ i chứa một số nguyên là trọng lượng của viên thiên thạch được
nộp vào ngân khố ở lần thu thuế thứ i tương ứng với sự kiện loại hai
thứ i
Ví dụ
Sample input
9
1
1
1
2
1

1
2
2
1

2
1 9
2 3
1 4
1 2
2 5
2 1

Sample output
4
3
5


SUM2D
Cho một bảng gồm m hàng và n cột. Cho t truy vấn có dạng x y p q, với mỗi truy
vấn, in ra tổng các số trong bảng chữ nhật con có hai góc đối diện là ô (x, y) và
ô (p, q).

Dữ liệu
 Dòng đầu tiên chứa ba số nguyên dương m, n và t (1 ≤ m, n ≤ 200,
1 ≤ t ≤ 40000).
 m dòng tiếp theo, mỗi dòng chứa n số nguyên là các phần tử của bảng.
Các số này có trị tuyệt đối không quá 109.
 t dòng tiếp theo, mỗi dòng chứa bốn số nguyên x, y, p, q mô tả một truy

vấn (1 ≤ x ≤ p ≤ m, 1 ≤ y ≤ q ≤ n).

Kết quả
 Với mỗi truy vấn, in ra tổng các số trong bảng chữ nhật con.

Ví dụ

Sample input
2 1
-1
1
2 1
1 1
1 1

3
2 1
1 1
2 1

Sample output
1
-1
0


3
4
6
2

3
2
3
1

.

3 4
-5 -5
-6 -7
-6 4
2 3 3
3 2 3
2 3 3
2 2 3

-2
-7
-2
-23


TEAMS
Hàng năm Trường ĐH Quốc gia tổ chức thi Tin học đồng đội, mỗi đội gồm 3 người.
Thông thường các bạn nữ hăng hái, nhiệt tình hơn và là lực lượng tham gia chủ
đạo.
Năm nay nhà trường quyết định mỗi đội phải có một nam và hai nữ. Có a bạn nữ và
b bạn nam đạt kết quả tốt ở vòng loại chọn thành lập đội tuyển. Để nâng cao chất
lượng đào tạo và khuyến khích sinh viên học tập, nhà trường quyết định cử c sinh
viên trong số những người đã vượt qua vòng loại đi thực tập ở nước ngoài. Những

người này sẽ không tham gia vào kỳ thi Tin học sắp tới của trường. Ban Chủ nhiệm
khoa quyết định danh sách các sinh viên được chọn đi thực tập.
Các sinh viên xuất sắc vượt qua vòng loại đều có thành tích xuất sắc tương đương
nhau vì vậy Ban Chủ nhiệm khoa sẽ chọn người đi thực tập sao cho từ phần còn lại
có thể thành lập được nhiều đội tuyển dự thi nhất. Ví dụ, với a=6, b=3, và c=2 cần
chọn một nam một nữ đi thực tập, khi đó từ phần còn lại sẽ lập được 2 đội tuyển
(một bạn nữ sẽ không tham gia thi đồng đội).
Yêu cầu: Cho a, b và c (0 ≤ a, b ≤ 1012;0 ≤ c ≤ a+b). Hãy xác định số đội tuyển nhiều
nhất có thể thành lập.
Dữ liệu: Dòng 1 chứa ba số nguyên a, b và c.
Kết quả: In ra số đội tuyển nhiều nhất có thể thành lập.

Ví dụ:
SAMPLE INPUT

SAMPLE OUTPUT

6 3 2

2


TELEFON
N sinh viên trong lớp quyết định thành lập một “mạng điện thoại không dây”. Để
làm điều này, các sinh viên được đánh số từ 1 đến N, sau đó mỗi học sinh chọn một
bạn duy nhất (gọi là hàng xóm), để truyền tải thư trực tiếp tới.
Mạng điện thoại không dây hoạt động như sau:
• Ban đầu một sinh viên gửi thư (dĩ nhiên, chỉ tới hàng xóm của mình);
• Mỗi học sinh nhận được thư (trực tiếp hoặc gián tiếp), sẽ chuyển tiếp bức
thư này cho hàng xóm của mình.

• Mạng điện thoại không dây làm việc đúng khi bất cứ học sinh bắt đầu việc
truyền tải một bức thư, bức thư sẽ qua tay tất cả N sinh viên (do đó quay trở
lại cho sinh viên khởi xướng việc truyền thư).
Hiện tại, mạng điện thoại không dây làm việc không đúng. Họ đang cân nhắc để
thực hiện một chuỗi thay đổi. Một thay đổi là việc chọn một người hàng xóm khác.
Xác định một chuỗi với số lượng thay đổi tối thiểu để mạng điện thoại không dây
hoạt động đúng.
Dữ liệu:
• Dòng đầu tiên ghi số tự nhiên N, là số lượng sinh viên (2 ≤ N ≤ 100000).
• Dòng tiếp theo là N số tự nhiên: số thứ i là người hàng xóm của người thứ i (1 ≤ i
≤ N).
Kết quả:
• Dòng đầu tiên in ra số k, là số lượng thay đổi tối thiểu để đảm bảo mạng điện
thoại không dây hoạt động đúng.
• Sau đó là k dòng, mỗi dòng mô tả một thay đổi và được xác định bởi hai số c, v, có
nghĩa là sinh viên c thay đổi người hàng xóm là v.
• Nếu có nhiều giải pháp, in ra giải pháp bất kỳ


Ví dụ:
SAMPLE INPUT

SAMPLE OUTPUT

10

5

6 9 2 7 3 1 9 3 7 9


2 4
6 10
8 5
9 1
10 8

Giới hạn:
• 30% tổng số test đảm bảo rằng tồn tại một sinh viên sẽ nhận được thư (gián tiếp
hay trực tiếp) từ bất kỳ người sinh viên nào khác.
• 20% tổng số test có N ≤ 1000.


TRANSFORM
Bạn có 2 xâu nhị phân cùng độ dài N là A và B. Đếm số cách thực hiện đúng K
phép biến đổi trên xâu A, sao cho cuối cùng ta thu được xâu B. Mỗi phép biến
đổi, bạn phải chọn đúng M vị trí khác nhau ở xâu A, rồi đổi ký tự ở các vị trí đó,
từ 0 thành 1 và ngược lại.
Do số cách biến đổi có thể rất lớn, bạn chỉ việc in ra số dư của kết quả sau khi
chia cho 109 + 9.
Dữ liệu
Gồm nhiều bộ test. Mỗi bộ test gồm 3 dòng.
 Dòng đầu gồm 3 số N, K, M.
 Dòng thứ hai là một xâu nhị phân gồm N ký tự miêu tả xâu A.
 Dòng thứ ba là một xâu nhị phân gồm N ký tự miêu tả xâu A.

Kết quả
Với mỗi test, in kết quả trên một dòng.

Ví dụ


Sample input
3 3 1
100
110
3 3 2
110
011

Sample output
7
7


×