Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

Dễ

Phân phối hàng hóa

100 điểm 0% AC 0 đã giải

root

Công ty Logistics ABC đang quản lý một dây chuyền đóng gói hàng hóa. Mỗi lượt, có \(n\) kiện hàng được xếp liên tiếp nhau, với kiện hàng thứ \(i\) có giá trị là \(a_i\). Để thuận tiện cho việc vận chuyển, các kiện hàng cần được chia thành \(k\) lô hàng. Mỗi lô hàng bao gồm một số kiện liên tiếp trên dây chuyền, và mỗi kiện hàng chỉ thuộc về đúng một lô. Tổng giá trị của các kiện hàng trong mỗi lô không được vượt quá một giới hạn cho trước là \(c\).

Sau khi chia lô, công ty cần đánh giá chất lượng của mỗi lô bằng cách tìm kiện hàng có giá trị lớn nhất. Tổng giá trị của các kiện hàng lớn nhất này từ tất cả các lô được gọi là điểm số \(s\).

Yêu cầu: Với mỗi giới hạn \(c\) được đưa ra, hãy giúp công ty tìm cách chia \(n\) kiện hàng thành một số lô nhỏ nhất có thể (\(k\) nhỏ nhất). Trong số các cách chia có cùng số lô nhỏ nhất này, hãy chọn cách chia mang lại điểm số \(s\) lớn nhất.

Input

  • Dòng đầu tiên chứa một số nguyên \(n\) (\(1 \le n \le 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)).
  • Dòng thứ ba chứa một số nguyên \(q\) (\(1 \le q \le 10\)) là số lượng truy vấn.
  • Mỗi dòng trong số \(q\) dòng tiếp theo tương ứng với một truy vấn chứa một số nguyên \(c\) (\(\max(a_1, a_2, \ldots, a_n) \le c \le 10^{10}\)).

Output

  • Gồm \(q\) dòng, mỗi dòng tương ứng với một truy vấn, in ra hai số nguyên \(k\) và \(s\) tìm được.

Example

Test 1

Input
5
5 3 2 2 5
2
9
8
Output
2 10
3 13

Scoring

  • Subtask 1 (20% số điểm): \(n \le 20\).
  • Subtask 2 (20% số điểm): \(n \leq 100\).
  • Subtask 3 (20% số điểm): \(a_1 \ge a_2 \ge \ldots \ge a_n\).
  • Subtask 4 (10% số điểm): \(k \leq 3\).
  • Subtask 5 (10% số điểm): \(c \leq 100\).
  • Subtask 6 (20% số điểm): Không có ràng buộc gì thêm.
Dễ

Mèo ăn kẹo

100 điểm 0% AC 0 đã giải

staffagent

Sắn nuôi \(N\) chú mèo và mua \(N\) gói kẹo, gói thứ \(i\) có \(A_i\) viên. Mỗi chú mèo sẽ nhận đúng một gói. Lũ mèo rất khó tính: chúng chỉ chịu ăn nếu không có hai gói nào chứa số kẹo bằng nhau.

Sắn được phép mua thêm kẹo và bỏ vào các gói (chỉ thêm vào, không lấy kẹo từ gói này sang gói khác) để mọi gói có số kẹo đôi một khác nhau. Tính số viên kẹo cần mua thêm tối thiểu.

Input

  • Dòng đầu: số nguyên \(N\).
  • Dòng sau: \(N\) số nguyên \(A_1, \dots, A_N\).

Output

Số viên kẹo tối thiểu cần mua thêm.

Constraints

  • \(1 \le N \le 3999\)
  • \(1 \le A_i \le N\)

Sample Input

5
2 2 2 4 4

Sample Output

6

Explanation

Sắp xếp rồi nâng dần thành \(2,3,4,5,6\); số kẹo thêm là \(0+1+2+1+2=6\).

Dễ

Vòng lặp

100 điểm 0% AC 0 đã giải

root

Xét một hàm code được viết theo dạng sau:

int code() {
    int ret = 0;
    for (int a = X1; a <= Y1; ++a)
    for (int b = X2; b <= Y2; ++b)
    ...
    for (int <N-th> = XN; <N-th> <= YN; ++<N-th>)
        ret = (ret + 1) \% 1000000007;
    return ret;
}

Có tổng cộng \(N\) vòng lặp lồng nhau.
Vòng lặp thứ \(i\) chạy từ \(X_i\) đến \(Y_i\), trong đó mỗi \(X_i\) hoặc \(Y_i\) có thể:

  • là một số nguyên dương không vượt quá \(100000\), hoặc
  • là tên của một biến thuộc vòng lặp ngoài (ví dụ: a, b, …).

Mỗi vòng lặp đều có ít nhất một trong hai giá trị \(X_i\) hoặc \(Y_i\) là số nguyên (không phải tên biến).
Các biến vòng lặp được đặt tên lần lượt theo bảng chữ cái: vòng 1 là a, vòng 2 là b, ..., vòng \(N\) là chữ cái thứ \(N\).

Yêu cầu của bài toán là tính tổng số lần câu lệnh ret = (ret + 1) % MOD được thực thi.

Kết quả phải được lấy modulo \(10^9 + 7\).

\InputFile

  • Dòng đầu chứa số nguyên \(N \ (1 \le N \le 26)\).
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa \(X_i\) và \(Y_i\), được phân tách bởi dấu cách.
    Mỗi giá trị có thể là một số nguyên dương \(\le 100000\) hoặc là tên biến
    a, b, ..., tương ứng với các vòng ngoài.
    Nếu cả hai đều là số, đảm bảo \(X_i \le Y_i\).

\OutputFile
In ra một số nguyên --- giá trị trả về của hàm.

\Scoring

  • Subtask 1 (15 điểm): \(n \le 5\) và mọi \(X_i, Y_i\) (nếu là số) có giá trị không quá \(30\).
  • Subtask 2 (15 điểm): Mọi \(X_i\) và \(Y_i\) đều là số.
  • Subtask 3 (20 điểm): \(X_1 = X_2 = \dots = X_n = 1\)
    và với mọi \(i > 1\), \(Y_i\) là chữ cái thứ \(i-1\) trong bảng chữ cái tiếng Anh
    (nói cách khác, \(Y_2 = \texttt{a}\), \(Y_3 = \texttt{b}\), \(Y_4 = \texttt{c}\), …).
  • Subtask 4 (20 điểm): Với mọi \(i > 1\), \(Y_i\) là chữ cái.
  • Subtask 5 (30 điểm): Không có ràng buộc gì thêm.

\Examples

\beginexample
\exmp
2
1 2
a 3

5

\exmp
3
2 3
1 2
1 a

10

\exmp
3
1 2
a 3
1 b

11

\endexample

Dễ

VIDEO

100 điểm 0% AC 0 đã giải

root

Có $ N $ video clip với thời lượng $ a_{i} $ giây. Tìm số video liên tiếp ít nhất có tổng thời lượng $ \geq S $. Nếu không tồn tại in ra -1.

Input

File VIDEO.INP gồm:

  • Dòng 1: $ N, S $ \(( N \leq 10^6, S \leq 2 \times 10^9 )\)
  • Dòng 2: $ N $ số $ a_1, a_2, ..., a_N $ \(( 1 \leq a_i \leq 10^9 )\)

Output

File VIDEO.OUT chứa số video tìm được.

Example

Test 1

Input
10 10
1 5 3 2 3 1 4 4 3 9
Output
2

Scoring

  • \(40\%\) số test \(( N \leq 100 )\) chiếm \(40\%\) điểm
  • \(30\%\) số test \(( 100 < N \leq 1000 )\) chiếm \(30\%\) điểm
  • \(30\%\) số test \(( 1000 < N \leq 10^6 )\) chiếm \(30\%\) điểm
Xem thêm