Điều hướng chính

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.

root

Thám hiểm mê cung

100 điểm

Nam tham gia trò chơi "Thám hiểm mê cung". Mê cung có dạng ma trận vuông gồm \(n \times n\) phòng, phòng ở hàng \(i\) và cột \(j\) được gọi là phòng \((i,j)\). Tại phòng \((i,j)\) có giấu phần thưởng có giá trị \(a_{ij}\). Khi tiến vào mê cung, người chơi sẽ được đưa đến một phòng ngẫu nhiên. Người chơi sau khi tìm ra được phần thưởng mới có thể di chuyển đến các phòng kề cạnh. Trong mê cung, có một phòng thoát hiểm. Sau khi tìm ra được phần thưởng đã giấu ở phòng thoát hiểm, người chơi sẽ thoát khỏi mê cung. Để hạn chế trả thưởng cho người chơi, hệ thống quy định sau khi thoát khỏi mê cung, người chơi nhận một phần thưởng có giá trị nhỏ nhất trong tất cả các phần thưởng đã tìm được.

Yêu cầu: Cho \(q\) truy vấn, với mỗi truy vấn cho biết phòng xuất phát \((x, y)\) và phòng thoát hiểm \((u, v)\), hãy lập trình tìm giá trị phần thưởng lớn nhất mà Nam nhận được.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n, q\) (\(1 \le n \le 500\); \(1 \le q \le 4 \times 10^5\)).
  • \(n\) dòng tiếp theo, mỗi dòng chứa \(n\) số nguyên \(a_{ij}\) (\(1 \le a_{ij} \le 10^5\)).
  • \(q\) dòng cuối cùng, mỗi dòng chứa bốn số nguyên \(x, y, u, v\) (\(1 \le x, y, u, v \le n\)), dữ liệu đảm bảo \((x + u)^2 + (y + v)^2 > 4xu + 4yv\).
  • Các số trên cùng một dòng cách nhau bởi dấu cách.

Output

  • Gồm \(q\) dòng, mỗi dòng in ra giá trị phần thưởng lớn nhất tương ứng với mỗi truy vấn.

Example

Test 1

Input
5 2
8 4 1 2 4
2 3 5 6 5
1 2 1 5 2
9 5 8 4 7
4 5 1 3 9
1 1 4 1
1 4 3 2
Output
3
2

Scoring

  • Có 20% số điểm tương ứng với \(n \le 100\) và \(q \le 100\);
  • Có 20% số điểm tương ứng với \(n \le 100\) và \(q \le 2000\);
  • Có 40% số điểm tương ứng với \(n \le 300\) và \(q \le 10^5\);
  • Có 20% số điểm tương ứng với \(n \le 500\) và \(q \le 4 \times 10^5\).

root

Cửa hàng

100 điểm

Một cửa hàng bày bán \(N\) bông hoa theo hàng ngang, bông hoa thứ \(i\) có giá trị \(F_i\) và chiều cao \(S_i\).
Bé Minh muốn mua một số bông hoa liên tiếp nhau để tạo thành bó hoa đẹp tặng mẹ, sao cho:

  • tổng giá trị các bông hoa ít nhất là \(M\);
  • chiều cao của bông hoa cao nhất là thấp nhất có thể.

Hãy giúp bé Minh tìm chiều cao nhỏ nhất có thể của bông hoa cao nhất trong bó hoa thỏa mãn
điều kiện trên.

\InputFile
Vào từ file văn bản FLOWERS.INP:

  • Dòng đầu chứa hai số nguyên \(N\) và \(M\) \((1 \le N \le 10^6,\ 1 \le M \le 10^{18})\), trong đó \(N\) là số bông
    hoa trong cửa hàng và \(M\) là tổng giá trị tối thiểu mà bé Minh muốn mua.
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(F_i, S_i\) \((1 \le F_i, S_i \le 10^9)\) lần lượt là giá trị và
    chiều cao của bông hoa thứ \(i\).

Dữ liệu cho trên cùng hàng cách nhau ít nhất một dấu cách.

\OutputFile
Ghi ra file văn bản FLOWERS.OUT một số nguyên duy nhất là chiều cao nhỏ nhất của bông hoa
cao nhất trong các bông hoa mà bé Minh chọn mua.
Dữ liệu đảm bảo bé Minh luôn chọn được bó hoa thỏa mãn điều kiện đề bài.

\Scoring

  • Subtask 1 (30%): \(N \le 1000\).
  • Subtask 2 (30%): Các giá trị \(S_i\) đã được sắp xếp tăng dần.
  • Subtask 3 (40%): Không có ràng buộc gì thêm.

Giải thích

Bó hoa mà bé Minh chọn mua gồm các bông hoa thứ 3, 4, 5 có tổng giá trị là \(3 + 4 + 3 = 10\) và chiều
cao lớn nhất của các bông hoa là \(\max(5, 9, 6) = 9\).

Example

Test 1

Input
5 10
4 10
6 15
3 5
4 9
3 6
Output
9

root

Câu 3 (5.0 điểm). Bộ ba tối thiểu

100 điểm

Cho một mảng \(a\) gồm \(n\) phần tử \(a_1, a_2, \dots, a_n\).

Mảng bộ ba được định nghĩa gồm các \(\min(a_i, a_j, a_k)\) với tất cả các bộ ba \((i, j, k)\) thỏa mãn \(1 \le i < j < k \le n\), trong đó \(\min(a_i, a_j, a_k)\) là giá trị nhỏ nhất của 3 phần tử \(a_i, a_j, a_k\).

Cho \(q\) truy vấn thuộc loại sau: "Cho số nguyên \(k\), trả lại phần tử nhỏ thứ \(k\) trong mảng bộ ba".

Input

Vào từ tệp văn bản trip.inp:

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(q\) \((3 \le n \le 3 \times 10^5; 1 \le q \le 3 \times 10^5)\) tương ứng là số phần tử mảng \(a\) và số truy vấn;
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) \((-10^9 \le a_i \le 10^9)\);
  • Mỗi dòng trong \(q\) dòng tiếp theo chứa một số nguyên \(k\) \((1 \le k \le \frac{n(n-1)(n-2)}{6})\) mô tả một truy vấn.

Output

Ghi ra tệp văn bản trip.out. Với mỗi truy vấn, in ra trên một dòng phần tử nhỏ thứ \(k\) trong mảng bộ ba.

Example

Test 1

Input
4 4
2 4 2 1
1
2
3
4
Output
1
1
1
2
Note

Trong ví dụ trên, các phần tử của mảng bộ ba là \(\min(1, 2, 3) = 1\), \(\min(1, 2, 4) = 1\), \(\min(1, 3, 4) = 1\), \(\min(2, 3, 4) = 2\) và sắp xếp tăng dần là \(1, 1, 1, 2\). Vì vậy phần tử nhỏ thứ \(1, 2, 3, 4\) lần lượt là \(1, 1, 1, 2\).

Scoring

  • 40% số test: \(3 \le n \le 10^2\);
  • 40% số test: \(3 \le n \le 10^3\) và \(1 \le q \le 10^4\);
  • 20% số test: Không có thêm ràng buộc nào.

root

Câu 4 (4.0 điểm). Chia quà

100 điểm

Bố của hai anh em Bắc và Giang vừa có một chuyến đi công tác về. Ông đã chuẩn bị \(N\) gói quà,
các gói quà được đánh số từ 1 đến \(N\), gói quà thứ \(i\) có giá trị là \(a_i\).

Ông sẽ chia hết số quà cho hai anh em Bắc và Giang.
Ông chia quà thành hai phần với tổng giá trị của từng phần là \(S_1\) và \(S_2\), độ chênh lệch giữa
hai phần quà là \(|S_1 - S_2|\).

Trước khi chia quà, ông đã ghi lần lượt các số 1 và 2 trên các gói quà.
Nếu gói quà ghi số 1 thì chia cho Bắc, số 2 thì chia cho Giang.

Ông muốn thay đổi cách chia sao cho độ chênh lệch là nhỏ nhất.

Input

Vào từ tệp văn bản CHIAQUA.INP gồm:

  • Dòng 1 ghi số nguyên dương \(N\);
  • Dòng 2 ghi \(N\) số \(a_1, a_2, \ldots, a_N\) \((1 \le a_i \le 10000)\);
  • Dòng 3 ghi dãy gồm \(N\) số (1 hoặc 2) tương ứng với cách chia ban đầu.

Output

Ghi ra tệp văn bản CHIAQUA.OUT gồm:

  • Dòng 1 ghi độ chênh lệch của cách chia ban đầu;
  • Dòng 2 ghi độ chênh lệch nhỏ nhất tìm được.

Example

Test 1

Input
5
10 15 14 8 10
1 2 1 2 1
Output
11
1

Scoring

  • Subtask 1: Có 30 test (75%) tương ứng 3,0 điểm với \(1 < N \le 20\);
  • Subtask 2: Có 10 test (25%) tương ứng 1,0 điểm với \(20 < N \le 100\).
Xem thêm