158B - Taxi
2014-11-29 00:36
260 查看
B. Taxi
time limit per test
3 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
After the lessons n groups of schoolchildren went outside and decided to visit Polycarpus to celebrate his birthday. We know that the i-th
group consists of si friends
(1 ≤ si ≤ 4),
and they want to go to Polycarpus together. They decided to get there by taxi. Each car can carry at most four passengers. What minimum number of cars will the children need if all members of each group should ride in the same taxi (but one taxi can take more
than one group)?
Input
The first line contains integer n (1 ≤ n ≤ 105)
— the number of groups of schoolchildren. The second line contains a sequence of integers s1, s2, ..., sn (1 ≤ si ≤ 4).
The integers are separated by a space, si is
the number of children in the i-th group.
Output
Print the single number — the minimum number of taxis necessary to drive all children to Polycarpus.
Sample test(s)
input
output
input
output
Note
In the first test we can sort the children into four
4000
cars like this:
the third group (consisting of four children),
the fourth group (consisting of three children),
the fifth group (consisting of three children),
the first and the second group (consisting of one and two children, correspondingly).
There are other ways to sort the groups into four cars.
time limit per test
3 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
After the lessons n groups of schoolchildren went outside and decided to visit Polycarpus to celebrate his birthday. We know that the i-th
group consists of si friends
(1 ≤ si ≤ 4),
and they want to go to Polycarpus together. They decided to get there by taxi. Each car can carry at most four passengers. What minimum number of cars will the children need if all members of each group should ride in the same taxi (but one taxi can take more
than one group)?
Input
The first line contains integer n (1 ≤ n ≤ 105)
— the number of groups of schoolchildren. The second line contains a sequence of integers s1, s2, ..., sn (1 ≤ si ≤ 4).
The integers are separated by a space, si is
the number of children in the i-th group.
Output
Print the single number — the minimum number of taxis necessary to drive all children to Polycarpus.
Sample test(s)
input
5 1 2 4 3 3
output
4
input
8 2 3 4 4 2 1 3 1
output
5
Note
In the first test we can sort the children into four
4000
cars like this:
the third group (consisting of four children),
the fourth group (consisting of three children),
the fifth group (consisting of three children),
the first and the second group (consisting of one and two children, correspondingly).
There are other ways to sort the groups into four cars.
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int n1=0,n2=0,n3=0,count=0; for(int i=0;i<n;i++) { int x=sc.nextInt(); if(x==1) n1++; if(x==2) n2++; if(x==3) n3++; if(x==4) count++; } if(n3>=n1) {count+=n3;count+=(n2+1)/2;} else { count+=n3+n2/2;n1-=n3; if(n2%2==0&&n1>0) count+=(n1-1)/4+1; else count+=(n1+1)/4+1; } System.out.println(count); } }
相关文章推荐
- CodeForces 158 B. Taxi(模拟)
- codeforces 158B(Taxi) Java
- CodeForces 158 B. Taxi(模拟)
- CF - 158B - Taxi
- codeforces 158B - Taxi
- Codeforces 158B - Taxi
- 158B - Taxi
- 158B_Taxi
- codeforces-158B-Taxi题解
- Problem--158B--Codeforces--Taxi
- 键障 2.0 Build 158 发布
- GCC-3.4.6源代码学习笔记(158)
- Android ApiDemos示例解析(158):Views->Layouts->TableLayout->03.Long Content
- UVA-1201 - Taxi Cab Scheme(POJ-2060)--DAG的最小路径覆盖
- poj2060 Taxi Cab Scheme 最小路径覆盖=顶点数-最大匹配数
- Codeforces B. Taxi 算法题解
- OCP 1Z0 053 158
- 158 整数的素数和分解问题
- URAL 2005. Taxi for Programmers (最短路 数学啊)
- Leetcode158: Reverse Words in a String