Chuỗi con tốt nhất (hsg)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 5

Bạn được cung cấp một chuỗi mật mã S có độ dài N. Chuỗi này chỉ chứa K loại chữ cái viết hoa đầu tiên trong bảng chữ cái tiếng Anh (ví dụ: nếu K = 3, chuỗi sẽ chỉ chứa 3 loại chữ cái là A, B và C).

Từ chuỗi S ban đầu, bạn có thể rút trích ra một "chuỗi con" bằng cách chọn ra một số chữ cái và giữ nguyên thứ tự ban đầu của chúng (nói cách khác, bạn được quyền xóa bớt một số chữ cái bị thừa). Ví dụ: Với chuỗi gốc là "ABCDE", bạn có thể tạo ra chuỗi con "ADE" hoặc "BD", nhưng không thể tạo ra chuỗi "DEA" vì nó bị ngược thứ tự.

Một chuỗi con được gọi là "Đội Hình Cân Bằng" nếu số lượng của TẤT CẢ K loại chữ cái trong chuỗi đó là HOÀN TOÀN BẰNG NHAU.

Nhiệm vụ của bạn: Hãy tìm cách xóa bớt ký tự sao cho phần còn lại tạo thành một "Đội Hình Cân Bằng" dài nhất có thể. In ra độ dài lớn nhất đó.


Dữ liệu vào (Input):

• Dòng 1: Chứa hai số nguyên N (1 <= N <= 10^5) là độ dài của chuỗi S, và K (1 <= K <= 26) là số loại chữ cái.

• Dòng 2: Chứa chuỗi S có độ dài N (chỉ gồm K loại chữ cái viết hoa đầu tiên).


Dữ liệu ra (Output):

• In ra một số nguyên duy nhất là độ dài của "Đội Hình Cân Bằng" dài nhất tìm được.


Ví dụ:

Input:
9 3 
ACAABCCAB
Output:
6

Mật mã Repeating (hsg)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 5

Polycarp yêu mật mã. Ông đã phát minh ra mật mã của riêng mình được gọi là repeating. Lặp lại mật mã được sử dụng cho chuỗi. Để mã hóa chuỗi s = s1s2…..sm (1≤m≤10), Polycarp sử dụng thuật toán sau:

anh ta viết s1 một lần,

anh ta viết s2 hai lần,

anh ta viết s3 ba lần,

...

Anh ta viết xuống sm m lần.

Ví dụ: nếu s = "bab" thì quá trình là: "b" → "baa" → "baabbb". Vì vậy, mã hóa s = "bab" là "baabbb".

Cho chuỗi t - kết quả mã hóa của một số chuỗi s. Nhiệm vụ của bạn là giải mã nó.

Đầu vào:

  • Dòng đầu tiên chứa số nguyên n (1≤n≤55) - độ dài của chuỗi được mã hóa. Dòng thứ hai của đầu vào chứa t - kết quả mã hóa của một số chuỗi s. Nó chỉ chứa các chữ cái viết thường. Độ dài của t chính xác là n.

  • Bài toán được đảm bảo rằng câu trả lời đều tồn tại.

Đầu ra: In chuỗi ban đầu trước khi bị mã hóa.

Input:
6
baabbb
Output:
bab

Chỉ số H

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 5

Cho mảng A gồm N số nguyên dương biểu thị số lần trích dẫn của N bài báo. Chỉ số H (H-Index) được định nghĩa là số H lớn nhất sao cho có ít nhất H bài báo có số lần trích dẫn lớn hơn hoặc bằng H. Hãy tìm H. (Bài này có thể sort, nhưng hãy dùng chặt nhị phân trên kết quả H).

Dữ liệu vào:

Dòng 1: Số nguyên N (1 <= N <= 10^5).

Dòng 2: N số nguyên A[i] (0 <= A[i] <= 10^9).

Dữ liệu ra:

Chỉ số H.

Ví dụ:

Input:
5 
3 0 6 1 5
Output:
3

Nâng cấp máy chủ (Broken Calculator)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 5

Hệ thống quản lý hiện tại đang ở phiên bản X. Quản trị viên cần nâng cấp lên phiên bản Y. Bảng điều khiển bị lỗi, chỉ còn đúng 2 nút bấm với chức năng:

Nhân đôi số phiên bản hiện tại (A = A * 2).

Giảm số phiên bản hiện tại đi 1 (A = A - 1).

Hãy tính số lần bấm nút ít nhất để từ phiên bản X đạt được đúng phiên bản Y.

Dữ liệu vào: Hai số nguyên X và Y (1 <= X, Y <= 10^9).

Kết quả ra: Số lần bấm nút ít nhất.

Ví dụ:

Input:
2 3
Output:
2

(Bấm nhân 2: 2->4, bấm trừ 1: 4->3).

Input:
5 8
Output:
2

(Bấm trừ 1: 5->4, bấm nhân 2: 4->8).