Professional Documents
Culture Documents
Findij - CPP
Findij - CPP
Findij - CPP
cpp
Cho dãy số a1, a2, a3, ..., aN. Hãy tìm hai chỉ số i và j sao cho:
- i<j
- |ai + aj| lớn nhất
Dữ liệu:
- Dòng đầu tiên ghi một số nguyên N (2 ≤ N ≤ 200000) - số phần tử trong dãy
- Dòng thứ hai ghi N số nguyên a1, a2, ..., aN (|ai| ≤ 109)
Kết quả: In ra số nguyên duy nhất là giá trị |ai + aj| lớn nhất tìm được.
Ràng buộc:
Ví dụ:
INPUT OUTPUT Giải thích
6 15 Hai chỉ số cần tìm là 5 và 6, |a5 + a6| = 15
-4 3 -9 0 10 5
3 5 Hai chỉ số cần tìm là 1 và 3, |a1 + a3| = 5.
-2 -1 -3
2. cake.cpp
Nhân dịp 20/10, vì muốn tạo ấn tượng với các bạn nữ trong lớp. Hiếu quyết định mua một số
bánh để làm quà tặng. Biết rằng có n loại bánh, bánh loại i có giá ai đồng. Biết rằng mẹ Hiếu chỉ
cho Hiếu đúng M đồng tiền tiêu vặt. Với M đồng này Hiếu có thể mua tất cả các loại bánh với
mỗi loại ít nhất một bánh.
Hiếu dự định sẽ mua tất cả các loại bánh và tìm cách mua được nhiều số bánh nhất có thể. Hãy
giúp Hiếu tính số bánh nhiều nhất mà Hiếu có thể mua nhé.
Dữ liệu:
- Dòng thứ nhất ghi hai số nguyên n, M - số loại bánh trung thu và tổng số tiền Hiếu có.
- Dòng thứ hai ghi n số a1, a2, ..., an với ai là giá tiền của bánh trung thu loại i.
Ràng buộc:
- 2 ≤ n ≤ 100
- 1 ≤ ai ≤ 1000
- a1 + a2 + ... + an ≤ M ≤ 105
- Tất cả dữ liệu được cho là số nguyên
Ví dụ:
INPUT OUTPUT
4 1000 8
110 100 150 160
3 5 5
1 1 1
3. rev.cpp
Cho xâu s chỉ gồm các kí tự Latin thường, được đánh số từ 1 đến |s|, trong đó |s| là độ dài của
xâu.
Có m thao tác đảo ngược xâu. Thao tác thứ i chọn một số nguyên dương ai và đảo ngược một
đoạn của xâu s từ ai đến |s| − ai + 1 (đảm bảo 2ai ≤ |s|). Hãy xác định xâu s sau khi thực hiện m
thao tác.
Dữ liệu:
- Dòng đầu tiên gồm một xâu s (2 ≤ |s| ≤ 2 · 105), chỉ chứa các kí tự Latin thường.
- Dòng thứ hai gồm một số nguyên dương m (1 ≤ m ≤ 105).
- Dòng thứ ba gồm m số nguyên dương ai (1 ≤ ai ≤ |s|/2 ).
Kết quả: Gồm một dòng duy nhất ghi xâu s sau m ngày.
Ví dụ:
INPUT OUTPUT
abcdef fbdcea
3
1 2 3
augnoms amongus
1
2