博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #323 (Div. 2) C.GCD Table
阅读量:5949 次
发布时间:2019-06-19

本文共 1869 字,大约阅读时间需要 6 分钟。

C. GCD Table

The GCD table G of size n × n for an array of positive integers a of length n is defined by formula

Let us remind you that the greatest common divisor (GCD) of two positive integers x and y is the greatest integer that is divisor of both xand y, it is denoted as . For example, for array a = {4, 3, 6, 2} of length 4 the GCD table will look as follows:

Given all the numbers of the GCD table G, restore array a.

Input

The first line contains number n (1 ≤ n ≤ 500) — the length of array a. The second line contains n2 space-separated numbers — the elements of the GCD table of G for array a.

All the numbers in the table are positive integers, not exceeding 109. Note that the elements are given in an arbitrary order. It is guaranteed that the set of the input data corresponds to some array a.

Output

In the single line print n positive integers — the elements of array a. If there are multiple possible solutions, you are allowed to print any of them.

Sample test(s)
input
4 2 1 2 3 4 3 2 6 1 1 2 2 1 2 3 2
output
4 3 6 2
input
1 42
output
42
input
2 1 1 1 1
output
1 1 思路:

  设数列X: a11, a12,...., ann;

由于gcd(a,b)<=min(a,b);
ans[N]存放已经选中的数,即array中一定存在的数; 
首先从X中找到最大的一个值aij,然后对ans[N]中的每一个数,得到g = gcd(aij, ans[i]), 
由于table矩阵是对称的,所以从X中删除2个值为 g 的数值!
最后将aij放入ans中!不断重复此过程,知道ans中数字个数为n;

#include
#include
#include
#include
#include
#include
#include
#define N 505using namespace std;int n;map
>mp;//key按照由大到小排序 int gcd(int a, int b){ return b==0 ? a : gcd(b, a%b);}int ans[N];int main(){ cin>>n; int nn = n*n; for(int i=0; i
>x; mp[x]++; } int len = 0; for(map
>::iterator it=mp.begin(); it!=mp.end();){ if(it->second == 0){//不为0,说明这个数还是array中的数字 ++it; continue; } --it->second; for(int i=0; i
first, ans[i]); mp[gcdn]-=2; } ans[len++] = it->first; } for(int i=0; i

转载地址:http://htpxx.baihongyu.com/

你可能感兴趣的文章
[考试]20150606
查看>>
Javascript_备忘录5
查看>>
Can’t create handler inside thread that has not called Looper.prepare()
查看>>
敏捷开发方法综述
查看>>
Hadoop数据操作系统YARN全解析
查看>>
Django 运行报错 ImportError: No module named 'PIL'
查看>>
修改数据库的兼容级别
查看>>
Windows下同时安装两个版本Jdk
查看>>
uoj#228. 基础数据结构练习题(线段树)
查看>>
JS键盘事件监听
查看>>
ios开发周期之--(向上,向下,四舍五入)取整
查看>>
加油!
查看>>
拦截导弹问题(动态规划)
查看>>
iOS 单元测试(Unit Test 和 UI Test)
查看>>
[linux小技巧]
查看>>
文件下载_中文乱码:"Content-disposition","attachment; filename=中文名
查看>>
HBase 笔记3
查看>>
2017.11.23 display fun --STM8
查看>>
深入学习jQuery选择器系列第八篇——过滤选择器之伪子元素选择器
查看>>
一个关于log4j的悲伤的故事
查看>>