hdu 6168 Numbers
来源:互联网 发布:苹果6s移动数据快捷键 编辑:程序博客网 时间:2024/05/21 11:34
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6168
Numbers
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 631 Accepted Submission(s): 335
Problem Description
zk has n numbers a1,a2,...,an . For each (i,j) satisfying 1≤i<j≤n, zk generates a new number (ai+aj) . These new numbers could make up a new sequence b1,b2,...,bn(n−1)/2 .
LsF wants to make some trouble. While zk is sleeping, Lsf mixed up sequence a and b with random order so that zk can't figure out which numbers were in a or b. "I'm angry!", says zk.
Can you help zk find out which n numbers were originally in a?
LsF wants to make some trouble. While zk is sleeping, Lsf mixed up sequence a and b with random order so that zk can't figure out which numbers were in a or b. "I'm angry!", says zk.
Can you help zk find out which n numbers were originally in a?
Input
Multiple test cases(not exceed 10).
For each test case:
∙ The first line is an integer m(0≤m≤125250), indicating the total length of a and b. It's guaranteed m can be formed as n(n+1)/2.
∙ The second line contains m numbers, indicating the mixed sequence of a and b.
Eachai is in [1,10^9]
For each test case:
Each
Output
For each test case, output two lines.
The first line is an integer n, indicating the length of sequence a;
The second line should contain n space-seprated integersa1,a2,...,an(a1≤a2≤...≤an) . These are numbers in sequence a.
It's guaranteed that there is only one solution for each case.
The first line is an integer n, indicating the length of sequence a;
The second line should contain n space-seprated integers
It's guaranteed that there is only one solution for each case.
Sample Input
62 2 2 4 4 4211 2 3 3 4 4 5 5 5 6 6 6 7 7 7 8 8 9 9 10 11
Sample Output
32 2 261 2 3 4 5 6
Source
2017 Multi-University Training Contest - Team 9
Recommend
liuyiding | We have carefully selected several similar problems for you: 6170 6169 6168 6167 6166
解析:求原来的数组,先排下序,最小的两个一定是原数组,然后一个一个的取,取完之后进行组合,把取出来的和求的和从数组中删除,一直重复这个操作即可
代码:
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 125250+100;int a[N], b[N];map<int, int> mp;int main(){ int n, len; while(~scanf("%d", &n)) { mp.clear(); len = 0; for(int i = 0; i < n; i++) { scanf("%d", &a[i]); mp[a[i]]++; } sort(a, a+n); b[len++] = a[0]; b[len++] = a[1]; mp[a[0]]--; mp[a[1]]--; int cur = a[0] + a[1], j = 2; mp[cur]--; while(j < n) { while(j < n && !mp[a[j]]) j++; if(j >= n) break; int cur = a[j]; mp[cur]--; for(int i = 0; i < len; i++) { int d = b[i] + cur; if(mp[d]) mp[d]--; } b[len++] = cur; } printf("%d\n", len); for(int i = 0; i < len; i++) printf("%d%c", b[i], i == len-1 ? '\n' : ' '); } return 0;}
阅读全文
0 0
- HDU 6168 Numbers(排序)
- HDU 6168 Numbers
- HDU 6168 Numbers
- hdu--6168--Numbers
- HDU 6168 Numbers
- HDU 6168 Numbers
- HDU 6168 Numbers【水题】
- hdu 6168 Numbers
- hdu 6168 Numbers【map】
- HDU 6168 Numbers
- HDU 6168-Numbers
- HDU 6168 Numbers
- hdu 6168 Numbers
- hdu-6168 Numbers
- HDU 6168 Numbers 思维
- HDU 6168 Numbers 思维
- Hdu 6168 Numbers【思维+暴力】
- hdu 6168 Numbers (STL)
- 逻辑回归softmax神经网络实现手写数字识别(cs)
- 1033. 旧键盘打字(20) Hash散列
- Spring框架中获取连接池的四种方式
- 3399-数据结构实验之排序二:交换排序
- 同学婚礼清单
- hdu 6168 Numbers
- 你应该知道的网页设计中的规则和禁忌
- PAT_1086. Tree Traversals Again
- 字符数组char的系统函数
- AbstractQueuedSynchronizer 之 互斥锁
- OpenCV—矩阵数据类型转换
- Nodejs的模块机制(require() 源码解读)
- 表格-表头有斜线
- C++ String 详解