Giới hạn thời gian: 1.0s / Giới hạn bộ nhớ: 256M

Điểm: 25

Cho hai số nguyên dương x,k.

Tìm số nguyên dương bé nhất sao cho x×y chia hết cho k.

Dữ liệu vào

Gồm một dòng duy nhất chứa hai số nguyên x,k cách nhau bởi dấu cách (x,k1018).

Kết quả

Gồm một số nguyên dương duy nhất là đáp án của đề bài.

Ví dụ

MINDIV.INP
8 6
MINDIV.OUT
3
MINDIV.INP
12 7
MINDIV.OUT
7

Ràng buộc

  • Có 50% số lượng test ứng với x,k106.
  • Có 50% số lượng test ứng với x,k1018.

Giới hạn thời gian: 1.0s / Giới hạn bộ nhớ: 256M

Điểm: 25

Trong kỳ nghỉ hè, Hiển và Hạo đang miệt mài ôn thi vòng 2 đội tuyển HSG Tin học. Một buổi chiều, Hạo đưa ra một bài toán thú vị: Cho một dãy số nguyên A gồm n phần tử A1,A2,,An. Hãy tìm dãy con liên tiếp có tổng lớn nhất. Hiển nhanh chóng nhận ra đây là bài toán kinh điển và quyết định viết chương trình giải nhanh gọn. Hãy giúp Hiển nhé!

Dãy con liên tiếp của A là một đoạn liên tục gồm các phần tử nằm liền nhau của A. Ví dụ, với A=[6,1,2,8,4], dãy [1,2,8] là một dãy con liên tiếp, còn [6,2,4] thì không.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương n (1n105) — độ dài dãy A.
  • Dòng thứ hai gồm n số nguyên Ai (|Ai|109) mô tả dãy A.

Kết quả

Gồm một dòng duy nhất chứa giá trị tổng lớn nhất của dãy con liên tiếp tìm được.

Ví dụ

MAX.INP
6
-1 3 -1 2 1 -5
MAX.OUT
5

Giải thích: Dãy con liên tiếp có tổng lớn nhất là A2+A3+A4+A5=3+(1)+2+1=5.

Ràng buộc

  • Có 50% số test ứng với n103, |Ai|104.
  • Có 50% số test còn lại ứng với n105, |Ai|109.

Giới hạn thời gian: 1.0s / Giới hạn bộ nhớ: 256M

Điểm: 25

Trong một ngôi nhà lớn có n căn hộ được xếp thành một hàng từ trái sang phải, mỗi căn hộ chứa chính xác một Pokémon thuộc một loại nào đó (được biểu diễn bằng một chữ cái in hoa hoặc in thường trong bảng chữ cái tiếng Anh).

Bạn Nhi, một nhà huấn luyện Pokémon trẻ tuổi, muốn thu thập tất cả các loại Pokémon xuất hiện trong ngôi nhà này. Nhi có thể vào từ đường phố tại một căn hộ bất kỳ, đi qua một số căn hộ khác (mỗi căn hộ tối đa một lần) và sau đó ra khỏi nhà tại một căn hộ bất kỳ. Các căn hộ được kết nối với nhau: căn hộ i kết nối với căn hộ i1i+1 (với 1<i<n), căn hộ 1 chỉ kết nối với căn hộ 2, căn hộ n chỉ kết nối với căn hộ n1.

Hãy tìm số lượng căn hộ ít nhất mà Nhi cần ghé thăm để có thể thu được tất cả các loại Pokémon có mặt trong ngôi nhà.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n (1n105) — số căn hộ.
  • Dòng thứ hai chứa xâu s có độ dài n, chỉ gồm các chữ cái Latinh in hoa và in thường. Ký tự thứ i cho biết loại Pokémon trong căn hộ thứ i.

Kết quả

In ra một số nguyên duy nhất — số căn hộ tối thiểu Nhi cần ghé thăm.

Ví dụ

EVERYWHERE.INP
3
AaA
EVERYWHERE.OUT
2
EVERYWHERE.INP
7
bcAAcbc
EVERYWHERE.OUT
3
EVERYWHERE.INP
6
aaBCCe
EVERYWHERE.OUT
5

Ràng buộc

  • Có 50% số lượng test ứng với n1000.
  • Có 50% số lượng test ứng với n105.

Giới hạn thời gian: 1.0s / Giới hạn bộ nhớ: 256M

Điểm: 25

Khôi tổ chức một bữa tiệc sinh nhật kỳ lạ. Cậu ấy mời n người bạn và gán cho người bạn thứ i một số nguyên ki.
Bây giờ Khôi muốn tặng mỗi người một món quà.
Trong cửa hàng gần đó có m món quà khác nhau, món quà thứ j có giá cj đồng (1c1c2cm).
Không được phép mua một món quà nhiều hơn một lần.

Với người bạn thứ i, Khôi có thể:

  • Mua cho họ một món quà jki với giá cj đồng, hoặc
  • Đưa trực tiếp cho họ cki đồng.

Hãy giúp Khôi xác định tổng chi phí nhỏ nhất để tổ chức bữa tiệc.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên t (1t10) — số lượng bộ test.
  • Dòng đầu tiên của mỗi bộ test chứa hai số nguyên n,m (1n,m104) — số lượng bạn bè và số lượng món quà.
  • Dòng tiếp theo chứa n số nguyên k1,k2,,kn (1kim).
  • Dòng tiếp theo chứa m số nguyên c1,c2,,cm (1c1c2cm109).

Kết quả

Với mỗi bộ test, in ra một số nguyên duy nhất — chi phí nhỏ nhất.

Ví dụ

BIRTHDAY.INP
2
5 4
2 3 4 3 2
3 5 12 20
5 5
5 4 3 2 1
10 40 90 160 250
BIRTHDAY.OUT
30
190

Ràng buộc

  • Có 50% số lượng test ứng với n,m103.
  • Có 50% số lượng test ứng với n,m104.