题意:

给出n个数字,要求找出不同的三个数字构成雪人,问最多可以构成多少组这种符合条件的要求

思路:

优先队列,排序为数字个数

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long ll;
int a[100005][5];
struct node
{int num,sum;friend bool operator  <(node n1,node n2){return n1.sum<n2.sum;}
}s[100005];
int b[100005];
int main()
{int n,t;cin>>n;priority_queue<node > q;for(int i=1;i<=n;i++){scanf("%d",&b[i]);}sort(b+1,b+1+n);node c;int x,y;c.num=b[1],c.sum=1;for(int i=2;i<=1+n;i++){if(b[i]!=c.num ){q.push(c);c.num=b[i];c.sum=1;}else{c.sum++;}}int ans=0;int cnt=0;while(!q.empty()){node first=q.top();q.pop();node second,third;second.num=-1,third.num=-1;if(!q.empty() ){second=q.top();q.pop();}if(!q.empty()  ){third=q.top();q.pop();}if(second.num!=-1&&third.num!=-1){a[++cnt][3]=third.num;a[cnt][2]=second.num;a[cnt][1]=first.num;}elsebreak;first.sum--;second.sum--;third.sum--;if(first.sum!=0){q.push(first);}if(second.sum!=0){q.push(second);}if(third.sum!=0){q.push(third);}}cout<<cnt<<endl;for(int i=1;i<=cnt;i++ ){int max1=max(max(a[i][1],a[i][2]),a[i][3]);int max2=min(min(a[i][1],a[i][2]),a[i][3]);int max3;for(int j=1;j<=3;j++){max3=a[i][j];if(max3!=max1&&max3!=max2)break;}cout<<max1<<" "<<max3<<" "<<max2<<endl;}return 0;
}
/*
8
3 4 5 3 2 3 5
*/

CodeForces - 140C-New Year Snowmen相关推荐

  1. CodeForces - 140C New Year Snowmen

    CodeForces - 140C New Year Snowmen 题意: 现在来做雪人,每个雪人由三个不同大小的雪球构成:一个大的,一个中等的,一个小的.现在有 n 个雪球半径分别为 r1, r2 ...

  2. CodeForces 140C New Year Snowmen (贪心+优先队列)

    题意:n个数,选三个严格下降的数为一组,求最多能选多少组,并列出每组哪些数. 题解:贪心+优先队列 最多能选多少组,那么必须贪心数量多的. 例如:1 1 2 3 4 5 如果按照数的大小排序,只能贪到 ...

  3. CodeForces 140C - New Year Snowmen(数据结构)

    题目链接:click here~~ [题目大意]给你一个整数序列,求最多选出每个长度为3的且序列元素单调的子序列的个数,并且输出每个子序列的元素,作为一个子序列,每个元素只能选一次,也就是满足一次性, ...

  4. 贪心(优先队列) - New Year Snowmen - CodeForces - 140C

    贪心(优先队列) - New Year Snowmen - CodeForces - 140C 题意: 给定一个长度为n的正整数序列a1,a2,...,an.给定一个长度为n的正整数序列a_1,a_2 ...

  5. New Year Snowmen codeforces 140C

    题目 As meticulous Gerald sets the table and caring Alexander sends the postcards, Sergey makes snowme ...

  6. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  7. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  8. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  9. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

最新文章

  1. python3 pymysql 查询结果转字典dict
  2. linux下出现ping:unknown host www.baidu.com问题时的解决办法——ubuntu下局域网络的配置
  3. SAP CRM定价决定(Price Determine)的调试入口
  4. 理解 Azure AD 安全默认值设置
  5. python简述定义函数的规则_Python的函数定义
  6. Maven生命周期和插件的那些事(2021版)
  7. Google PR 到4了
  8. BZOJ1108 [POI2007]天然气管道Gaz
  9. 电脑连接移动设备android驱动程序,手机连接电脑驱动程序下载汇总
  10. 关于在Google Earth中动态加载地标问题
  11. 阿里 java 电话面试_阿里Java开发电话面试经历--惨败
  12. 数列极限的性质与判定
  13. 计算标准累积正态分布_神说要有正态分布,于是就有了正态分布。
  14. 分式的化简(约分、通分)
  15. UVALive 6657 GCD XOR 异或,因子筛法
  16. Kubernetes系列之五:使用yaml文件创建service向外暴露服务
  17. 双软认证需要什么材料
  18. 【P秋色的小课堂】第一课
  19. 第996号互联网世界终结了
  20. opencv中waitKey()的作用

热门文章

  1. 让人寒心,义工丛飞资助的是一群白眼狼?
  2. 搞算法的仙女妹子,爱了!!
  3. 从零开始学习信号完整性(SIPI)--2
  4. cad直线和圆弧倒角不相切_CAD倒角技巧
  5. PredRNN++: Towards A Resolution of the Deep-in-Time Dilemma in Spatiotemporal Predictive Learning 翻译
  6. CSS压缩之:正则五步替换法
  7. 逆向——微信接收文本图片消息
  8. 解决Mac电脑连不上wifi的问题
  9. Discuz手机视频模板 AIUI7.3.0 商业版
  10. 人生就像四季,繁华过后终归平淡,不可能一直繁华似锦,不可能一路花香四溢。...