This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Thứ Hai, 23 tháng 12, 2019

Bài kho khó

Bài 1: Dãy con tổng bằng 0 DAY0
Cho dãy số nguyên a=(a1, a2, .... , an),1 ≤ n ≤ 10000,-10000 ≤ ai  ≤ 10000
Hãy tìm 1 dãy đoạn dài nhất gồm các phần tử liên tiếp trong dãy a có tổng bằng 0.
Input
·       Dòng 1 chứa số n
·       Dòng 2 chứa n số a1, a2, ... , an theo đúng thứ tự cách nhau ít nhất 1 dấu cách
Lưu ý Dữ liệu luôn cho hợp lí để tồn tại 1 doạn các phần tử liên tiếp có tổng bằng 0.
Output: 2 số là số thứ tự của phần tử đầu tiên và phần tử cuối cùng của dãy liên tiếp có tổng bằng 0. Nếu có nhiều đoạn, xuất đoạn đầu tiên tìm được.
Ví dụ:
Input
Output
9
2 7 5 -3 -2 4 -9 -2 -1
2 8


      B          Bài 2:Xuất hiện XUATHIEN

Cho dãy a có m phần tử nguyên a1, a2, …, am. Dãy b có n phần tử nguyên b1, b2, …, bn. Cho biết có bao nhiều phần tử trong dãy a xuất hiện trong dãy b.
Input
Dòng đầu gồm 2 số m, n (0 < m, n ≤ 107)
m dòng tiếp theo, dòng thứ i là số nguyên ai (|ai| ≤ 109)
n dòng tiếp theo, dòng thứ i là số nguyên bi (|bi| ≤ 109)
Output: Số lượng phần tử trong dãy a xuất hiện trong b.
Ví dụ:
Input
Output
3 5
1
2
3
1
3
5
4
3
2


Nhập xuất file 3


Bài 1: May cờ
Gọi x, y là chiều dài và chiều rộng lá quốc kì.
ta có:

Người ta may N lá quốc kì, chiều dài lá thứ i bằng chiều rộng lá thứ i-1.
Cho biết chiều rộng y của lá thứ K trong số N lá. Tính chiều dài và chiều rộng của lá lớn nhất và nhỏ nhất.
InputDữ liệu nhập vào từ file mayco.inp gồm 3 số n, k, y
OutputDữ liệu xuất ghi ra file mayco.out kết quả
·       Dòng đầu là chiều rộng và chiều dài của lá nhỏ nhất, làm tròn lấy 5 chữ số ở phần thập phân.
·       Dòng hai là chiều rộng và chiều dài của lá lớn nhất, làm tròn lấy 5 chữ số ở phần thập phân.
Ví dụ:
mayco.inp
mayco.out
10 5 100
9.01699 14.58980
685.41020 1109.01699


Bài 2: cặp số thân thiết
Giữa bạn bè với nhau có tình hữu nghị và bạn có biết rằng giữa các con số với nhau cũng có "sự thân thiết". Một nhà toán học từng nói: "Ai là bạn tốt của tôi thì chúng tôi sẽ giống như hai con số 220 và 284". Vậy tại sao 220 và 284 lại tượng trưng cho những người bạn thân thiết? Thì ra, 220 ngoài bản thân nó ra còn có 11 ước số khác là 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 và 110. Tổng của 11 ước số này vừa đúng bằng 284. Cũng vậy, 284 ngoài bản thân nó còn có 5 ước số khác là: 1, 2, 4, 71, 142, tổng của chúng cũng vừa đúng bằng 220. Hai số này, trong anh có tôi, trong tôi có anh, gắn bó thân thiết, không tách rời nhau. Các nhà toán học cổ Hy Lạp gọi những cặp số có tính chất như vậy là "số thân thiết".
Yêu cầu: Hãy tìm cặp “số thân thiết” trong đoạn M, N. Nếu không có cặp số nào thì ghi -1.
Dữ liệu vào: File văn bản friend.inp gồm hai số nguyên dương M, N (M <N) các số cách nhau bởi dấu cách.
Dữ liệu ra: Ghi ra file văn bản friend.out
- Có thể có nhiều dòng, mỗi dòng là một cặp “số thân thiết” mỗi số trong cặp cách nhau ít nhất một dấu cách.
- Trường hợp không tìm ra cặp nào trong đoạn M, N thì ghi -1.
Ví dụ:
friend.inp
friend.out
1 1500
220  284
1184  1210

Bài 3: Quà tết
Sau một năm nuôi Heo đất, Bờm đã tiết kiệm được x đồng. Bờm quyết định dùng số tiền trên để mua y kg Gạo và Đậu tặng các bạn học sinh nghèo ăn Tết Nguyên Đán 2019. Giá một kg Gạo nếp là 6 đồng, giá một kg Gạo tẻ là 4 đồng, ba kg Đậu giá  là 11 đồng.
Yêu cầu: Viết chương trình giúp Bờm đưa ra các cách mua Gạo và Đậu (mỗi cách mua phải có đủ 3 loại, số kg mỗi loại phải là số nguyên dương).
Input: Được nhập vào từ file quatet.inp gồm một dòng ghi hai số nguyên x và y (0<x,y<=6000). Mỗi số cách nhau một kí tự trắng
Output: Ghi vào file quatet.out  ghi ra cách mua gồm ba số nguyên theo thứ tự là số kg Gạo nếp, Gạo tẻ, Đậu (mỗi số cách nhau một kí tự trắng). Nếu có nhiều cách thì mỗi cách mua ghi trên một dòng. Nếu không cách nào thì ghi số 0
Ví dụ:
quatet.inp
quatet.out
108 23
9 8 6
10 1 12





Giải thích:
Bờm tiết kiệm được 108 đồng và muốn mua 23 kg Gạo và Đậu thì Bờm có 2 cách mua
Cách 1: Mua 9 kg Gạo nếp, 8 kg Gạo tẻ, 6 kg Đậu
Cách 2: Mua 10 kg Gạo nếp, 1 kg Gạo tẻ, 12 kg Đậu


Bài 4: Chia kẹo

Minh có N cái kẹo và cậu định cho N-1 người bạn nhưng chỉ có x (x>=1) bạn nhận. Cậu quyết định sẽ chia cho mỗi bạn N div (x+1) cái kẹo và cậu giữ số kẹo còn lại. Rõ ràng Minh rất thông minh vì như vậy trong một số trường hợp cậu ta sẽ có nhiều kẹo hơn các bạn. Ví dụ với N = 4 và chỉ có x = 2 người nhận. Mỗi người bạn sẽ nhận được 4 div (2+1) = 1 cái kẹo và Minh sẽ được 2 cái kẹo còn lại.
Yêu cầu: Tính xem có bao nhiêu số x trong khoảng từ 1 đến N – 1 thỏa mã điều kiện: nếu có x bạn đến thì Minh chỉ nhận được số kẹo bằng các bạn.
Input: (chiakeo.inp) Số nguyên dương N (2 ≤ N ≤ 1012)
Output: (chiakeo.out) Kết quả của bài toán
ví dụ:
Input
Output
4
2
24
7


Giải thích: Trong ví dụ 2 các giá trị x là: 1, 2, 3, 5, 7, 11, 23
Bài 5:    Số sinh đôi
Trong lý thuyết số, hai số nguyên tố p và q được gọi là cặp số sinh đôi nếu q – p = 2. Ví dụ, các cặp số (3, 5), (11, 13), (17, 19) là các cặp sinh đôi. Trong trường hợp tổng quát với số nguyên dương k cho trước, cặp số nguyên tố p và q được gọi là sinh đôi (tổng quát) nếu q – p = k. Ví dụ, với k = 4 cặp số nguyên tố (3, 7) được gọi là sinh đôi tổng quát trong tập số tự nhiên là bài toán phức tạp không kém việc xác định số lượng cặp sinh đôi theo định nghĩa thông thường.
Yêu cầu: cho n và k. Hãy xác định số cặp sinh đôi tổng quát trong phạm vi từ 1 đến n.
Input: (sinhdoi.inp) 2 số nguyên n và k (1 ≤ N, K ≤ 1000)
Output: (sinhdoi.out) số cặp sinh đôi tổng quát

Input
Output
17 2
3

Giải thích: có các cặp (3,5) v (5,7) v (11,13)
Bài 6: Cắt mảng
Cho một mảng số gồm n số nguyên. Hãy cho biết có thể cắt mảng trên thành 2 phần có tổng bằng nhau được hay không? (các số trong mỗi phần phải liên tiếp nhau)
input: file catmang.inp gồm
-dòng 1: số nguyên n (0<n<100000)
-dòng 2: ghi n số nguyên, mỗi số không vượt quá 1000000 và cách nhau 1 dấu cách
output: file catmang.out
-dòng 1: ghi Yes nếu cắt được , ngược lại ghi No
-dòng 2: ghi vị trí đầu tiên của phần thứ 2

Input
Output
Giải thích
6
5 3 2 7 4 10
No

5
2 8 1 4 5
Yes
3
Ta có thể cắt dãy trên thành 2 phần
có tổng bằng 10
Phần 1: 2 8
Phần 2: 1 4 5
Như vậy phần 2 bắt đầu từ vị trí thứ 3


Bai 7: Phút trước giao thừa
Năm mới sắp đến và Tèo rất hào hứng muốn biết còn lại bao nhiêu phút nữa là đến giao thừa. Biết rằng hiện tại đồng hồ hiển thị h giờ và m phút (0 ≤ h < 24, 0≤ m<60, sử dụng định dạng thời gian 24 giờ)
Nhiệm vụ của em là giúp Tèo tính số phút trước giao thừa. Biết rằng giao thừa đến khi đồng hồ hiển thị 0 giờ và 0 phút
Input: file giaothua.inp gồm:
-Dòng đầu tiên chứa một số nguyên n (1 ≤ n≤ 1439) - số lượng các trường hợp tính
-n dòng sau mỗi dòng chứa lần lượt hai số nguyên h và m cách nhau 1 kí tự trắng (0 ≤ h < 240 ≤ m < 60).
Đảm bảo rằng thời gian này không phải là nửa đêm, tức là hai điều kiện sau đây không thể được đáp ứng cùng một lúc: h = 0 và m=0, và cả hai h và m được đưa ra mà không có số không dẫn đầu (không có dạng như 01, 09)
Output: ghi ra file giaothua.out gồm n dòng. Dòng thứ i ghi số phút trước giao thừa của trường hợp thứ i
Thí dụ
Input
output
6
23 55
23 0
0 1
4 20
23 59
22 0
5
60
1439
1180
1
120


Bài 8: Ăn kẹo:
Minh có ba loại kẹo: kẹo đỏ (r), xanh lá cây (g) và vàng (y)
Mỗi ngày Minh ăn chính xác hai viên kẹo có màu sắc khác nhau. Cậu ấy có thể tự do lựa chọn màu sắc của kẹo để ăn: hạn chế duy nhất là cậu ấy không thể ăn hai viên kẹo cùng màu trong một ngày.
Tìm số ngày tối đa Minh có thể ăn kẹo? Mỗi ngày cậu cần ăn đúng hai viên kẹo.
Input: ankeo.inp
-Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤ 1000) là số trường hợp cần kiểm tra
-n dòng sau mỗi dòng chứa 3 số nguyên lần lượt là r, g, y là số lượng viên kẹo màu đỏ, xanh, vàng (mỗi số cách nhau 1 kí tự trắng, 1<r, g, y< 108)
Output: ankeo.out
Gồm n dòng: dòng thứ i trả lời cho trường hợp thứ i
Thí dụ
Input
output
6
1 1 1
1 2 1
4 1 1
7 4 10
8 1 4
3 2 3
1
2
2
10
5
4


Giải thích: Trong ví dụ đầu tiên, Minh chỉ có thể ăn kẹo trong một ngày. Cậu ấy có thể ăn bất kỳ cặp kẹo nào trong ngày này vì tất cả chúng đều có màu sắc khác nhau.
Trong ví dụ thứ hai, Minh có thể ăn kẹo trong hai ngày. Ví dụ, cậu ấy có thể ăn kẹo đỏ và xanh vào ngày đầu tiên, kẹo xanh và vàng vào ngày thứ hai.
Trong ví dụ thứ sáu: tự giải thích nhé (giải thích được thì sẽ làm được)




Thứ Bảy, 7 tháng 12, 2019

Bài tập nhập xuất file 2

Bài 1:
Cho số nguyên dương x. Hãy phân tích x thành tích các thừa số nguyên tố
input: phantich.inp gồm 1 dòng chứa số nguyên x (0<x<1000000)
output: phantich.out là kết quả phân tích x thành tích các thừa số nguyên tố. Xem ví dụ để biết rõ cách in
ví dụ:


Input
output
12
2*2*3
7
7

Bài 2:

Cho số nguyên dương x. Hãy phân tích x thành tích các thừa số nguyên tố
input: phantich2.inp gồm:
-dòng đầu chứa số nguyên dương n (0<n<=1000)
-n dòng sau mỗi dòng chứa số nguyên x (0<x<1000000)
output: phantich2.out là kết quả phân tích n số nguyên x thành tích các thừa số nguyên tố. Mỗi số phân tích trên một dòng. Xem ví dụ để biết rõ cách in
Input
output
3
12
7
9
2*2*3
7
3*3


Bài 3: 
Cho dãy n số nguyên. Hãy viết chương trình thực hiện các yêu cầu sau:
1. tìm giá trị lớn nhất (max) và giá trị nhỏ nhất (min) của dãy số trên
2. in ra những số trong phạm vi min và max không xuất hiện trong dãy
input: day.inp gồm
-dòng đầu: số nguyên dương n (0<n<10000)
-dòng sau là n số nguyên trong dãy. Mỗi số không vượt quá 1000000 và các số cách nhau bằng 1 kí tự trắng
output: day.out gồm
-dòng đầu: in 2 số lần lượt là min và max
-dòng sau: các số nguyên trong phạm vi min và max không xuất hiện trong dãy
ví dụ:
Input
output
4
8 4 3 10
3 10
5 6 7 9
Bài 4:
Cho hai số nguyên m và n. hãy in ra hình chữ nhật có cạnh là m và n
input: file chunhat.inp Hai số nguyên m và n (0<m,n<20)
output: file chunhat.out in ra hình chữ nhật toàn dấu * có cạnh là m và n. Xem ví dụ để biết cách in
ví dụ:
Input
output
3 8
********
********
********
Bài 5:
Tính diện tích phần được tô màu của hình bên dưới
input: dientich.inp số nguyên a là độ dài cạnh hình vuông (0<a<200)
output: dientich.out ghi diện tích phần tô màu (làm tròn lấy 2 số thập phân, lấy Pi=3.14)
ví dụ:
Input
output
20
86.00
Bài 6: Số n là số đẹp nếu trong các chữ số của n chữ số đứng sau không được bé hơn số đứng trước.
Ví dụ: 123, 226 là những số đẹp; các số 86, 16868 không là số đẹp
Viết chương trình kiểm tra n có là số đẹp hay không?
input: sodep.inp gồm một dòng ghi số nguyên n (0<n<100000000)
output: sodep.out ghi Yes nếu n là số đẹp ngược lại ghi No

Input
output
20
No


Bài 7: Cho số nguyên n. Hãy thông báo có thể phân tích n thành tổng của 2 số nguyên tố khác nhau được không?
input: tongngto.inp gồm một dòng ghi số nguyên n (0<n<10000)
output: tongngto.inp  gồm
-dòng đầu: ghi Yes nếu n phân tích được ngược lại ghi No
-dòng sau: nếu phân tích được lần lượt ghi hai số nguyên tố là kết quả phân tích số n. Ghi số bé trước, số lớn sau
ví dụ:

Input
output
7
Yes
2 5
11
No

Bài 8: Cho dãy n số nguyên. Tìm giá trị lớn thứ 2 trong dãy

input: day.inp gồm
-dòng đầu: số nguyên dương n (0<n<10000)
-dòng sau là n số nguyên trong dãy. Mỗi số có giá trị tuyệt đối không vượt quá 1000000 và các số cách nhau bằng 1 kí tự trắng
output: day.out ghi giá trị lớn thứ 2

ví dụ:
Input
output
4
8 4 3 10
8
Bài 9: Nam đã làm được một chuỗi đá gồm N viên đá từ những viên đá màu mà cậu sưu tập được. Các viên đá của Nam có màu xanh, đỏ hoặc vàng. Theo Nam, một chuỗi đá đẹp sẽ có đủ 3 màu xanh, đỏ, vàng và số lượng các viên đá mỗi màu bằng nhau. Bạn hãy giúp Nam kiểm tra chuỗi đá của cậu ấy có là chuỗi đá đẹp hay không nhé!
Input: dadep.inp Gồm “
-dòng đầu ghi số nguyên N (0<N<=5000)
-dòng sau: ghi N kí tự, mỗi kí tự cách nhau 1 kí tự trắng. Các kí tự của là ‘G’,’R’ hoặc ‘Y’ tương ứng với các viên đá màu xanh, đỏ hoặc vàng.
Output: dadep.out Nếu chuỗi đá là một chuỗi đá đẹp, ghi ra ‘YES’. Nếu không ghi ra ‘NO’

Input
Output
6
Y R G G Y R
YES
4
Y Y G G
NO
5
Y Y G G R
NO


Bài 10: Nam đã làm được một chuỗi đá từ những viên đá màu mà cậu sưu tập được. Các viên đá của Nam có màu xanh, đỏ hoặc vàng. Theo Nam, một chuỗi đá đẹp sẽ có đủ 3 màu xanh, đỏ, vàng và số lượng các viên đá mỗi màu bằng nhau. Bạn hãy giúp Nam kiểm tra chuỗi đá của cậu ấy có là chuỗi đá đẹp hay không nhé!
Input: dadep.inp Gồm một dòng duy nhất ghi một xâu độ dài không quá 5000 biểu diễn chuỗi đá. Các kí tự của xâu là ‘G’,’R’ hoặc ‘Y’ tương ứng với các viên đá màu xanh, đỏ hoặc vàng.
Output: dadep.out Nếu chuỗi đá là một chuỗi đá đẹp, ghi ra ‘YES’. Nếu không ghi ra ‘NO’

Input
Output
YRGGYR
YES
YYGG
NO
YYGGR
NO

code tham khảo

chú ý: Xâu lớn >255 kí tự dùng kiểu ansistring
Bài 11: Lúc 7 giờ hai ô tô cùng xuất phát từ ngã tư Sông Ray và ngã ba Dầu Giây cách nhau a km, chúng chuyển động thẳng đều và đi cùng chiều nhau. Xe thứ nhất đi từ ngã tư Sông Ray với vận tốc x km/h xe thứ hai khởi hành từ ngã ba Dầu Giây với vận tốc y km/h.
Yêu cầu: Viết chương trình tính
a. Tính khoảng cách của hai xe sau khi chúng khởi hành được  t giờ.
b. Sau khi đi được t giờ xe thứ nhất bắt đầu tăng tốc và đạt vận tốc z km/h. Hai xe gặp nhau lúc mấy giờ và nơi gặp nhau cách ngã ba Dầu Giây bao nhiêu kilômét ?
Input (vatly.inp): gồm 1 dòng ghi lần lượt 5 số a, x, y, z, t. Mỗi số cách nhau một khoảng trắng. (0<x, y, z <=60, x<z, 0<a<150, 0<t<10)
Output (vatly.out): Gồm 3 dòng
-dòng 1: ghi khoảng cách của hai xe sau khi chúng khởi hành được  t giờ.
-dòng 2: ghi thời điểm hai xe gặp nhau
-dòng 3: ghi khoảng cách giữa nơi gặp nhau với ngã ba Xuân Mỹ
(Các kết quả làm tròn lấy 1 số thập phân)

input
output
100 30 40 60 2

120.0
15.0
240.0


Bài 12: 
Trường THCS Thân Thương tổ chức ngoại khóa. Có N lớp tham dự, mỗi lớp cử tối đa 4 học sinh. Ban tổ chức cần bố trí một số bàn để học sinh ngồi. Với yêu cầu là một bàn ngồi tối đa 4 học sinh, học sinh cùng lớp phải ngồi cùng bàn. Em hãy giúp ban tổ chức bố trí số bàn tối thiểu cho N học sinh
Input: ngoaikhoa.inp gồm
-dòng đầu là số nguyên N (0<n<100)
-dòng sau ghi n số nguyên, số nguyên thứ i là số lượng học sinh tham gia của lớp thứ i. Mỗi số không vượt quá 4 và cách nhau 1 kí tự trắng
Output: in ra số bàn tối thiếu mà ban tổ chức cần bố trí
Ví dụ:
Input
Output
5
1 2 4 3 3
4
8
2 3 4 4 2 1 3 1
5
Bài 13:
Minh rất thích trò sưu tầm đồ cổ. Đầu tiên Minh có 1 món đồ cổ với 'độ tuổi' là 1 ngày. Trong n ngày tiếp theo, ngày thứ i, cậu ghi lại tuổi món đồ cổ nhất mà mình có, sau đó bổ sung thêm 1 đồ vật có độ tuổi là x ngày vào bộ sưu tập. Công việc tưởng đơn giản nhưng khi số lượng đồ cổ tăng lên và đặc biệt là sau mỗi ngày, mỗi món đồ đã có tăng lên 1. Viết chương trình xác định tuổi món đồ cổ nhất sau n ngày sưu tập.
Dữ liệu vào từ file doco.inp là:
-Dòng đầu ghi số n(n<=1000)
-N dòng tiếp theo, dòng thứ i ghi số x.
Kết quả ghi ra file doco.out.
input
output
2
3
1
4
4
1
1
2
2
5