HLG 1176 小陈老师、雪人【优先队列+map】
2012-03-16 00:29
471 查看
Description |
东北的冬季,尤其是过年的时候,小陈老师喜欢去堆雪人。 每个雪人主要由三个雪球构成:大雪球、中雪球、小雪球。 他已经准备好了N个雪球,半径分别等于r1, r2, ..., rn。如果要堆一个雪人,就需要三个半径互不相等的雪球。 例如: 三个雪球的半径为1、2、3,能够用来堆一个雪人。但是半径为2、2、3或者2、2、2的三个雪球就不可以。 快帮帮小陈老师,算算他最多能用这些雪球堆多少个雪人。 |
Input |
对于每组测试数据: 第1行,包含一个整数n(1≤n≤100000) — 雪球的数量。 第2行,包含n个整数 — 雪球的半径r1, r2, ..., rn (1≤ri≤1000000000)。 处理到文件结束 |
Output |
对于每组测试数据: 第1行,输出最多能堆多少雪人 - k。 接下来k行,每行描述一个雪人,每行用空格分割三个数字分别表示大雪球、中雪球、小雪球的半径。 可以用任何顺序输出每个雪人。如果有多种可行解,输出任意一个即可。 |
Sample Input |
7 1 2 3 4 5 6 7 3 2 2 3 |
Sample Output |
2 3 2 1 6 5 4 0 |
code:
View Code
#include<stdio.h> #include<string.h> #include<map> #include<queue> #include<stdlib.h> using namespace std; int cmp(const void*p1,const void*p2) { return *(int*)p1-*(int*)p2; } struct node { long long r; long long tot; const bool operator < (const struct node&a)const { return tot<a.tot; } }tmp,tmp1,tmp2,tmp3; map<long long,long long> v; long long a[100005]; long long res[40000][3]; int main() { int t,i,n,top; while(scanf("%d",&n)!=EOF) { priority_queue<node>que; v.clear(); for(i=0;i<n;i++) { scanf("%lld",&a[i]); v[a[i]]++; } for(i=0;i<n;i++) { if(v[a[i]]) { tmp.r=a[i]; tmp.tot=v[a[i]]; v[a[i]]=0; que.push(tmp); } } top=0; while(que.size()>2) { tmp1=que.top(); que.pop(); tmp2=que.top(); que.pop(); tmp3=que.top(); que.pop(); res[top][0]=tmp1.r; res[top][1]=tmp2.r; res[top][2]=tmp3.r; qsort(res[top],3,sizeof(long long),cmp); top++; tmp1.tot--; if(tmp1.tot) que.push(tmp1); tmp2.tot--; if(tmp2.tot) que.push(tmp2); tmp3.tot--; if(tmp3.tot) que.push(tmp3); } printf("%d\n",top); for(i=0;i<top;i++) printf("%lld %lld %lld\n",res[i][2],res[i][1],res[i][0]); } return 0; }
相关文章推荐
- hrbust 哈理工oj 1176 小陈老师、雪人(优先队列)
- 哈理工OJ 1176 小陈老师、雪人(排序+优先队列模拟)
- HrbustOJ 1176 小陈老师、雪人 (STL map 和优先队列)
- hrbust1176小陈老师、雪人 map&&priority queue
- hbrust 1176 小陈老师、雪人【map+优先队列+栈】
- hrbust 1176 小陈老师、雪人【map+优先队列】
- Hrbust 1176 小陈老师、雪人
- hlg1175小陈老师、桌子、盘子【计算几何】
- hlg1175小陈老师、桌子、盘子【计算几何】
- hlg1175小陈老师、桌子、盘子【计算几何】
- 刘道军老师红帽linu(RHCE 033 )单元4 浏览文件系统
- 教案书写——叶峰老师
- 大学老师的底线
- SpringMVC拦截器_老师查看班级的成绩
- (2)传统定时器技术回顾 张孝祥老师经典讲解总结
- HDU 1176 免费馅饼
- HLG 1348 最短路径[floyd]
- [日推荐]『钢琴优课』你免费的私人随身钢琴老师
- HLG 1377 金明的预算方案[有依赖的背包]
- 学习blus老师js(6)--js运动基础