package com.acm.njupt;
import java.util.Arrays;
import java.util.Scanner;
public class B1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int num[] = new int[n];
int i ;
int count = 0;
//num_4,num_3,num_2,num_1分别用来统计人数为4,3,2,1的组的个数
int num_4 = 0 ,num_3 = 0 ,num_2 = 0,num_1 = 0;
//分别用来存储人数为4,3,2,1的组所需要用到的出租车的数量
int a4 = 0 , a3 = 0 , a2 = 0 ,a1 = 0 ;
for( i = 0 ; i < n ; ++i ){
num[i] = scanner.nextInt();
}
Arrays.sort(num);
for(i = 0 ; i < n ;++i){
if(num[i] == 4){
++num_4;
}
if(num[i] == 3){
++num_3;
}
if(num[i] == 2){
++num_2;
}
if(num[i] == 1){
++num_1;
}
}
count += num_4;
if(num_3 >num_1){
count += num_3;
if(num_2%2 == 0){
count +=(num_2/2);
}else{
count +=(num_2/2 +1);
}
}else{
count += num_3;
num_1 -=num_3;
if(num_2%2 ==0){
count+=(num_2/2);
}else{
count += ((num_2/2) + 1);
if(num_1 >= 2){
num_1 -=2;
}else{
num_1 = 0;
}
}
if(num_1%4 == 0){
count+=(num_1/4);
}else{
count +=((num_1/4) + 1);
}
}
System.out.println(count);
}
}
Taxi
最新推荐文章于 2022-06-22 21:57:16 发布