有 n 个盒子,它们的大小和重量相同,但材料的强度可能不同。其中每个盒子都有一个对应的强度 xi。即这个盒子顶部可以放多少个盒子
现在要将这些盒子叠放起来,为了节省空间,问这些盒子最少可以放成几堆
第一行包含整数 n 下一行包含 n 个整数 x1,x2,...,xn
输出最少需要放几堆
3
0 0 10
2
对于 100% 的数据,1≤n≤100,0≤xi≤100
如果luogu有原题告诉我,没有的花告诉我为什么10pts
// code
#include <bits/stdc++.h>
using namespace std;
int n, a [105], t [105], top = 0;
bool cmp (int a, int b) {
return a > b;
}
int main () {
cin >> n;
memset (t, 0x3f, n);
for (int i = 1 ; i <= n ; i ++)
cin >> a [i];
sort (a + 1, a + 1 + n, cmp);
for (int i = 1 ; i <= n ; i ++) {
bool flag = true;
for (int j = 1 ; j <= top ; j ++) {
if (a [i] < t [j]) {
t [j] = a [i];
flag = false;
break;
}
}
if (flag) {
t [++top] = a [i];
}
}
cout << top;
return 0;
}