摞盘子 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 169(79 users) Total Accepted: 91(76 users) Rating: Special Judge: No Description Leyni有n个盘子,只要盘子i的半径严格小于盘子j,那么盘子i就可以摞在盘子j上(不允许将两个盘子同时并排摞在一个盘子上,即使半径足够小),Leyni想知道这n个盘子至少要摞几坨。
Input 输入包含多组测试数据。
对于每组测试数据:
第1行,包含一个整数n (1 ≤ n ≤ 105)
接下来n行,每行包含一个半径r (1 ≤ r ≤ 109),代表着n个盘子的半径。
处理到文件结束
Output 对于每组测试数据:
第1行,输出至少要摞几坨。
Sample Input 4
2
5
5
3
Sample Output 2
本题只需要找出最多的盘子有几个就好了,具体为什么仔细思考下。 下面是AC代码:
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int a[100005]; int main() { int n; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a,a+n); int maxn=1,sum=0; for(int i=0;i<n;i++) { if(a[i]==a[i+1]) { sum++; } else { sum++; maxn=max(sum,maxn); sum=0; } } printf("%d\n",maxn); } return 0; }