1809: make pair

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 60  Solved: 44



SubmitStatusWeb Board

Description

pair<T,T>是c++标准模板库中一种十分有用的模板类型,它是一个二元组。我们可以用它来表示一个二维坐标点,人的身高体重等等。make_pair()函数可以方便地构造一个pair。

现在有一个长度为n的整数数组a1~an(可以存在相同的元素),将每两个元素(包括自身)make_pair(),一定能得到n2个pair。例如,[1,2,3]make_pair()后,将得到{[1,1],[1,2],[1,3], [2,1],[2,2],[2,3], [3,1],[3,2],[3,3]}。

问题是这样的,在构造出了n2个pair后,升序排序(先按第一维排序,若第一维相等,再按第二维排序),你能找到排序后的第k个元素吗?

Input

多组数据。

第一行,2个整数n和k (1<=n<=10000,1<=k<=n^2)。

第二行,n个整数,即原数组a1~an(1<=ai<=1000000000)。

Output

对于每组数据,输出两个整数,排序后的第k个pair。

Sample Input

2 4

2 1

3 2

3 1 5

Sample Output

2 2

1 3

一般的组合数问题,不一样的地方就是输出第几个组合数,将k设置为全局变量,找到一个就k--,到k==0时输出

#include<stdio.h>
#include<string.h>
#define MAX 100010
#include<algorithm>
using namespace std;
int num[MAX],a[MAX];
int n,k;
void dfs(int p)
{
if(p>2)
return ;
for(int i=0;i<n;i++)
{
a[p]=num[i];
if(p==2)
{
k--;
if(!k)
{
printf("%d %d\n",a[1],a[2]);
return ;
}
}
dfs(p+1);
}
}
int main()
{
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=0;i<n;i++)
scanf("%d",&num[i]);
sort(num,num+n);
dfs(1);
}
return 0;
}

这是一个模拟的代码,可以自己列几组数据

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int num[10010];
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=1;i<=n;i++)
scanf("%d",&num[i]);
sort(num+1,num+n+1);
int x,y;
if(k%n)
{
x=k/n+1;
y=k%n;
}
else
{
x=k/n;
y=n;
}
printf("%d %d\n",num[x],num[y]);
}
return 0;
}

最新文章

  1. 将项目上传到git上,并在测试服务器上运行
  2. 如何自定义Flask中的响应类
  3. C++ Copy Elision
  4. Oracle中用一个表的数据更新另一个表的数据
  5. MSSQL数据库逻辑文件名修改与查看
  6. MySQL 库大小、表大小、索引大小查询命令
  7. POJ 3678--Katu Puzzle(2-SAT)
  8. Android菜鸟的成长笔记(17)—— 再看Android中的Unbounded Service
  9. 【读后感】读《漫谈“大学生的四个learn”》之后有感
  10. Android--UI之ScrollView
  11. linux 更新yum源 改成阿里云源
  12. 20175314 《Java程序设计》第二周学习总结
  13. Redis对象占用内存分析
  14. Tomcat server.xml中Connector配置参数详解
  15. BZOJ1260 [CQOI2007]涂色paint 动态规划
  16. python操作Mysql数据库示例
  17. 订单BOM、销售BOM、标准BOM
  18. CentOS、Ubuntu、Debian简析
  19. SVN同步时报错:“Previous operation has not finished; run &#39;cleanup&#39; if it was interrupted”
  20. C#编程(五十五)----------HashSet和SortedSet

热门文章

  1. 浏览器解析,HTTP/HTTPS、TCP/IP、WebSocket协议
  2. Spring boot配置404、500页面
  3. CF474F Ant colony
  4. 【BZOJ 1089】[SCOI2003]严格n元树
  5. JavaIO 总结-装饰者模式
  6. asp.net C# 获取网页源代码的几种方式
  7. windows 下面的grep awk 命令
  8. &amp;quot;duplicate symbol for architecture i386&amp;quot; 解决的方法
  9. 使用java源代码生成Kettle 4.4
  10. Datazen图表创建和公布