Dãy số

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++
Điểm: 13 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho dãy số nguyên dương \(a_1, a_2, ..., a_n\). Mỗi thao tác bạn được phép chọn một phần tử bất kỳ trong dãy để tăng lên \(1\) đơn vị.

Yêu cầu: Thực hiện \(m\) thao tác để phần tử nhỏ nhất của dãy (sau khi thực hiện \(m\) thao tác) nhận giá trị lớn nhất.

Dữ liệu vào: :

  • Dòng đầu tiên gồm hai số nguyên \(n\)\(m\) (\(1 \le n \le 2 \cdot 10^5; 0 \le m \le 10^9\)) lần lượt là số lượng phần tử của dãy và số thao tác thực hiện;
  • Dòng thứ hai gồm \(n\) số nguyên \(a_1, a_2, ..., a_n\) (\(1 \le a_i \le 10^9\)) là giá trị ban đầu của các phần tử.

Kết quả: Ghi ra một số nguyên duy nhất là giá trị nhỏ nhất của dãy số sau khi thực hiện \(m\) thao tác theo yêu cầu trên.

Ví dụ:

stdin stdout
5 6
2 8 6 5 9
6

Ràng buộc:

  • Có 20% số điểm có giá trị \(n \le 10^5\)\(m \le 1\);
  • Có 20% số điểm có giá trị \(n = 2\)\(m \le 10^2\);
  • Có 30% số điểm có giá trị \(n \le 10^3\)\(m \le 10^2\);
  • 30% số điểm còn lại không có ràng buộc gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.