http://codeforces.com/problemset/problem/388/A
题目大意:有n个箱子,每个箱子都是同宽等高的,但承受压力的能力不同,压力的大小一箱子的表面第一个箱子的大小有关,与表面第2第3.....均无关,要把这些箱子分堆,看看能分成多少堆。
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
int A[105];
int main(void)
{
int i;
scanf("%d", &n);
for(i=0; i<n; ++i)
scanf("%d", &A[i]);
sort(A, A+n);
int ans=0;
for(i=0; i<n; ++i)
if(ans*(A[i]+1)<=i)
++ans;
printf("%d\n", ans);
return 0;
}