giúp mik với(c++a)
Nam có n viên gạch được đánh số từ 1 tới n. Các viên gạch có độ cứng lần lượt là 𝑎1
, 𝑎2
, , 𝑎𝑛.
Một viên gạch có độ cững x nghĩa là Nam có thể chồng lên trên viên gạch đó tối đa x viên gạch khác,
nếu chồng lên nhiều hơn thì viên gạch đó sẽ bị vỡ.
Yêu cầu: Hãy cho biết chồng gạch cao nhất mà Nam có thể sắp được có tối đa bao nhiêu viên
gạch.
Dữ liệu vào: cho tệp GACH.INP gồm:
- Dòng thứ nhất chứa số nguyên dương 𝑛 (1 𝑛 105
) là số lượng viên gạch
- Dòng thứ hai gồm n số nguyên 𝑎1
, 𝑎2
, , 𝑎𝑛 (0 𝑎𝑖 109
) là độ cứng của các viên gạch.
Kết quả ra: ghi ra tệp GACH.OUT một số nguyên duy nhất là số viên gạch tối đa để xếp được
chồng gạch cao nhất
Ví dụ:
GACH.INP GACH.OUT
3
1 2 1
3
6
0 0 0 0 0 0
1
int main() { int n, a[100005], d = 0; cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1, a + n + 1); for (int i = 1; i <= n; i++) { if (d <= a[i]) d++; } cout << d; }