Có N
những đứa trẻ muốn chơi đu quay, và nhiệm vụ của bạn là tìm một chiếc thuyền
gondola cho mỗi đứa trẻ. Mỗi gondola có thể có một hoặc hai trẻ em trong đó và
ngoài ra tổng trọng lượng trong gondola không được vượt quá x. Bạn biết trọng lượng của mỗi đứa trẻ.
Số
lượng gondola tối thiểu cần thiết cho trẻ em là bao nhiêu?
Dữ
liệu vào:
-
Dòng đầu tiên chứa hai số nguyên N (1 ≤ N ≤ 2.105)
và x (1 ≤ x
≤ 109): số lượng trẻ em và trọng lượng tối đa cho
phép.
-
Dòng tiếp theo chứa N số nguyên p1, p2,
…, pN (1 ≤ pi ≤ x) cân nặng của mỗi đứa trẻ.
Kết
quả: In ra một số nguyên là số gondola ít nhất.
Ví dụ:
Input |
Output |
4 10 7 2 3 9 |
3 |
Bạn được cung cấp một mảng chứa mỗi số giữa
1 … n chính xác một lần. Nhiệm vụ của bạn là thu thập các số từ 1 đến n theo thứ
tự tăng dần.
Trên
mỗi dòng, bạn đi qua dãy từ trái sang phải và thu thập càng nhiều số càng tốt.
Tổng số vòng sẽ là bao nhiêu?
Dữ
liệu vào:
Dòng
đầu tiên có một số nguyên N (1 ≤ n ≤ 2.105)
là kích thước mảng.
Dòng
tiếp theo có N số nguyên x1, x2, …, xn là các
số trong mảng.
Kết
quả: In ra một số nguyên là tổng số vòng.
Ví dụ:
Input |
Output |
5 4 2 1 5 3 |
3 |
Bạn được cung cấp thời gian đến và đi của N
khách hàng trong một nhà hàng. Số lượng khách hàng tối đa trong nhà hàng tại bất
kỳ thời điểm nào là bao nhiêu?
Dữ
liệu vào:
Dòng
đầu tiên có một số nguyên N là số lượng khách hàng (1 ≤ n ≤ 2.105).
Tiếp
theo, có N dòng mô tả các khách hàng. Mỗi dòng chứa hai số nguyên a và b (1 ≤ a < b ≤ 109):
thời điểm đến và đi của một khách hàng.
Bạn
có thể cho rằng tất cả thời gian đến và đi là khác nhau.
Kết
quả: In ra một số nguyên là số lượng khách hàng tối đa.
Ví dụ:
Input |
Output |
3 5 8 2 4 3 9 |
2 |
Nhiệm vụ của bạn là chia các số 1, 2, …, n
thành hai tập hợp có tổng bằng nhau.
Dữ
liệu vào: chứa một số nguyên duy nhất n (1 ≤ n ≤ 106)
Dữ
liệu ra: In ra “YES” nếu phép
chia có thể thực hiện được, ngược lại in ra “NO”.
Sau
đó, nếu có thể phân chia, hãy in ra một ví dụ về cách tạo các tập hợp. Đầu
tiên, in số phần tử trong tập hợp đầu tiên, theo sau là chính các phần tử đó
trong một dòng riêng biệt, sau đó, in tập hợp thứ hai theo cách tương tự.
Ví dụ:
Input |
Output |
7 |
YES 4 1 2 4 7 3 3 5 6 |
6 |
NO |
Một nhà máy có N máy móc có thể được sử dụng để sản xuất sản phẩm. Mục tiêu của bạn
là kiếm được tổng cộng t sản phẩm.
Đối
với mỗi máy, bạn biết được số giây cần thiết để tạo ra một sản phẩm. Các máy có
thể hoạt động đồng thời và bạn có thể tự quyết định lịch trình của chúng.
Thời
gian ngắn nhất cần thiết để làm ra t sản phẩm?
Dữ
liệu vào:
- Dòng đầu tiên có hai
số nguyên N và t (1 ≤ N ≤ 2.105;
1 ≤ t ≤ 109):
số lượng máy móc, sản phẩm.
- Dòng tiếp theo có N số
nguyên k1, k2, …, kN (1 ≤ ki ≤ 109) thời gian cần thiết để tạo ra một sản
phẩm sử dụng mỗi máy.
Dữ
liệu ra: In một số nguyên: thời gian tối thiểu cần thiết để thực hiện t sản phẩm.
Ví dụ:
Input |
Output |
3 7 3 2 5 |
8 |
Giải
thích: Máy 1 làm được 2 sản phẩm, máy
2 làm được 4 sản phẩm và máy 3 làm được 1 sản phẩm.
Cho dãy A gồm N số nguyên a1, a2, ..., an (|ai|
≤ 109). Một đoạn con a[i..j] có độ dài là j-i+1 (1 ≤ i ≤ j ≤ N).
Đoạn con được gọi là đoạn xen kẽ nếu hai phần tử bất kỳ nào đứng cạnh nhau đều
trái dấu.
Yêu cầu của bài tập
này bạn cần viết chương trình thực hiện nhiệm vụ sau: Với mỗi vị trí i ( 1 ≤ i
≤ N) hãy tính độ dài dãy con xen kẽ dài nhất của dãy A bắt đầu ở vị trí i.
Dữ liệu
nhập:
- Dòng đầu ghi T là số lượng bộ test
( 1 ≤ T ≤ 20)
- Trong 2T dòng tiếp theo ghi thông
tin về các bộ test: dòng đầu ghi N, dòng hai ghi dãy A
Kết
quả:
- Gồm T dòng, mỗi dòng ghi N số nguyên lần lượt là độ dài dãy
con xen kẽ dài nhất tìm được tương ứng với mỗi test trong input.
Ràng
buộc:
- 50% test: 1 ≤ N ≤ 1000
- 50% test: N ≤ 100.000
Ví dụ:
Input |
Output |
1 6 -5 -4 -3 1 -2 -1 |
1 1 3 2 1 1 |
Ở vương quốc NONAME người ta đưa ra một quy tắc đặt tên kỳ lạ: Mỗi dòng họ chọn một dãy ký tự độ dài n chỉ gồm các ký tự in hoa trong bảng chữ cái tiếng Anh. Khi đó để đặt tên cho một người trong dòng họ thì chỉ cần thay đổi thứ tự của các ký tự với nhau.
Yêu cầu: Cho biết hai xâu tên của hai
người trong vương quốc, hãy kiểm tra xem hai người này có cùng dòng họ hay
không?
Dữ
liệu nhập:
-
Dòng thứ nhất là số nguyên T (1 <= T <= 10) là số trường hợp cần kiểm tra.
-
Các dòng tiếp theo mô tả T trường hợp gồm:
+
Dòng thứ nhất là số nguyên dương n
+
Dòng thứ hai là xâu tên thứ nhất
+
Dòng thứ ba là xâu tên thứ hai
Kết
quả: In ra t dòng là kết quả kiểm tra cho T trường hợp. Nếu cùng dòng họ
thì in 1 còn không ghi 0.
Ví dụ:
Input |
Output |
3 3 LLQ KHQ 3 FDF GDD 3 KWE EKW |
0 0 1 |
2 3 FJS FHF 3 HWJ HJW |
0 1 |