Xin ý tưởng về bài toán trong lập trình c#
Mình có bài toán như thế này.
Minh đã là sinh viên năm cuối nên lớp Minh định tổ chức một buổi đi picnic. Các bạn của beo muốn thuê xe con 4 chỗ để đi, mỗi xe chỉ chở được tối đa 4 người. Ngoài ra, vì có những nhóm bạn chơi chung nên họ không muốn đi khác nhau. Minh được giao nhiệm vụ thuê xe.
Hãy giúp Minh tìm ra số xe ít nhất để phục vụ cho buổi picnic.
Input
Dòng đâu tiên là số nguyên n(n<=10^5) là số nhóm bạn.
Dòng thứ 2 gồm n số nguyên có giá trị không vượt quá 4. Số thứ i là số người trong nhóm bạn thứ i. Các số cách nhau bằng 1 khoảng trắng.
Output
Một số nguyên duy nhất là số xe cần để phục vụ cho buổi dã ngoại
Example
Input:
8
1 1 2 2 4 4 3 3
Output:
5
Mọi người giúp mình tìm hướng giải quyết cho bài toán với.
Tham lam thôi:
Làm sao mà mình ghép chúng vs nhau được bạn, trong khi bài này không được dùng 2 vòng for lồng nhau.
Giả sử bạn đếm dc số nhóm 3 người là 5, số nhóm 1 là 6. Như vậy theo bước 2. Số nhóm 3-1 ghép dc = min(5,6) =5. Bạn cần 5 xe cho bước 2 này
Ví dụ mình có:
5
1 1 1 2 3.
Hoặc
5
1 1 1 1 1
Từng bước bạn làm sẽ như thế nào.