codeforce 140C
来源:互联网 发布:linux vsftpd 怎么使用 编辑:程序博客网 时间:2024/06/06 15:51
让你找出三个不同的数字来,注意从大到小排序,最开始我的想法是二分查找做标记,但是我发现这样是错的,看了题解之后发现,我们可以每个数字的个数的多少作为优先级,插入优先级队列中,然后进行查找。
#include<iostream>
#include<cstdio>#include<string.h>
#include<string>
#include<stack>
#include<set>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>
#include<sstream>
#include<queue>
#define ll __int64
#define lll unsigned long long
#define MAX 100009
#define MAXN 2009
#define eps 1e-8
#define INF 0x7fffffff
#define mod 1000000007
#define clr(a) memset(a,0,sizeof(a))
#define clr1(a) memset(a,-1,sizeof(a))
#define lson l , m , rt << 1
#define rson m + 1 , r , rt << 1 | 1
using namespace std;
map<int,int>a;
typedef pair<int,int> p;//使用typedef为现有类型创建同义字,定义易于记忆的类型名
priority_queue<p>Q;
int ans[MAX][3];
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("an.txt","r", stdin);
#endif
int n,x;
scanf("%d",&n);
for(int i = 0;i<n;i++)
{
scanf("%d",&x);
a[x]++;
}
for(map<int,int>::iterator it = a.begin();it!=a.end();it++)
{
Q.push(make_pair(it->second,it->first));
}
int kk = 0;
while(Q.size()>=3)
{
p A = Q.top();Q.pop();
p B = Q.top();Q.pop();
p C = Q.top();Q.pop();
ans[kk][2] = A.second;
ans[kk][1] = B.second;
ans[kk][0] = C.second;
kk++;
if(--A.first>0)Q.push(A);
if(--B.first>0)Q.push(B);
if(--C.first>0)Q.push(C);
}
printf("%d\n",kk);
for(int i = 0;i<kk;i++)
{
sort(ans[i],ans[i]+3);
printf("%d %d %d\n",ans[i][2],ans[i][1],ans[i][0]);
}
return 0;
}
0 0
- codeforce 140C
- Codeforce # C. Average Score
- CodeForce 279C
- codeforce 237 C D
- Codeforce C. Barcode
- Codeforce 57C Array
- Codeforce 240C Practice
- Codeforce 332C
- codeforce 370C
- codeforce 400 C
- codeforce 6C
- codeforce 12C map
- codeforce 14C
- codeforce 18C
- codeforce 447C
- codeforce 20140808 C. Boredom
- codeforce 492 C D
- (288C)codeforce
- NYOJ 6 喷水装置(一)【贪心】
- 来自大数据的反思:需要你读懂的10个小故事
- 使用NDK开发阻塞式socket客户端程序,recv读取数据无法关闭socket问题的解决
- [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- 简单编码
- codeforce 140C
- 关于linux内核重要文件的基本描述
- C# 重写WndProc 拦截 发送 系统消息
- Qt 5.3 下OpenCV 2.4.11 开发(9)直方图均衡化
- 上海行——GameJam赛后小记
- 枚举用法详解
- SQL模糊查询的语法
- Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64
- 【.Net码农】C#反射获取 所有字段 及 私有字段