ACM Sdut 2158 Hello World!(数学题,排序) (山东省ACM第一届省赛C题)
题目描述
We know thatIvan gives Saya three problems to solve (Problem F), and this is the firstproblem.
“We need a programmer to help us for some projects. If you show us that youor one of your friends is able to program, you can pass the first hurdle.
I will give you a problem to solve. Since this is the first hurdle, it is verysimple.”
We all know that the simplest program is the “Hello World!”program. This is a problem just as simple as the
“Hello World!”
In a large matrix, there are some elements has been marked. For every markedelement, return a marked element whose row and column are larger than theshowed element’s row andcolumn respectively.
If there are multiple solutions, return the element whoserow is the smallest; and if there are still multiple solutions, return theelement whose column is the smallest. If there is no solution, return -1 -1.
Saya is not a programmer, so she comes to you for help
Can you solve this problem for her?
输入
The inputconsists of several test cases.
The first line of input in each test case contains one integer N (0<N≤1000), which represents the number of marked element.
Each of the next N lines containing two integers r and c,represent the element’s rowand column. You can assume that 0<r,c≤300.
A marked element can be repeatedly showed.
The last case is followed by a line containing one zero.
输出
For each case,print the case number (1, 2
…), andfor each element’s rowand column, output the result. Your output format should imitate the sampleoutput. Print
a blank line after each test case.
示例输入
3
1 2
2 3
2 3
0
示例输出
Case 1:
2 3
-1 -1
-1 -1
/************************************
在一个矩阵中有一些标记元素(行 r 和列 c ),找出比这些元素行,列下标大的标记元素的行和列并输出,如果有多个输出行最小的,行相同输出列最小的
简单的数学题,排序,因为每个元素有两个下标(r,c),以行(r)为主排序,若行(r)相同,则比较列(c)..然后判断一下就行。
**************************************/
Code:
#include <stdio.h>
#include<algorithm>
#include <string.h>
using namespace std;
struct Point // 定义一个 元素 (标记) 的结构体。
{
int x;
int y;
}point[1005],p[1005];
bool cmp(Point a,Point b)
{
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
}
int main()
{
int n,count_case = 1,i,j,k;
while(scanf("%d",&n)&&n)
{
for(i = 0;i<n;i++)
{
scanf("%d%d",&point[i].x,&point[i].y);
p[i].x = point[i].x;p[i].y = point[i].y;// 拷贝一份数据
}
std::sort(p,p+n,cmp); // 将拷贝数据备份
printf("Case %d:\n",count_case++);
for(i = 0;i<n;i++)
{
j = 0;
while((point[i].x>=p[j].x||point[i].y>=p[j].y)&&j<n)// 遍历,如果标记元素 的 x y 比要显示的小 则继续,否则跳出循环
j++;
if(j<n)
printf("%d %d\n",p[j].x,p[j].y);// 找到了比 标记元素 的 x y 大的元素,输出
else
printf("-1 -1\n");// 没找到,输出 -1 -1
}
printf("\n");
}
return 0;
}
ACM Sdut 2158 Hello World!(数学题,排序) (山东省ACM第一届省赛C题)的更多相关文章
- 山东省第七届省赛 D题:Swiss-system tournament(归并排序)
Description A Swiss-system tournament is a tournament which uses a non-elimination format. The first ...
- 山东省第六届省赛 H题:Square Number
Description In mathematics, a square number is an integer that is the square of an integer. In other ...
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
Binomial Coeffcients TimeLimit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 输入 输出 示例输入 1 1 10 2 9 ...
- Sdut 2165 Crack Mathmen(数论)(山东省ACM第二届省赛E 题)
Crack Mathmen TimeLimit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Since mathmen take security ...
- Sdut 2151 Phone Numbers (山东省ACM第一届省赛题 A)
题目描述 We know thatif a phone number A is another phone number B's prefix, B is not able to becalled. ...
- Greatest Number 山东省第一届省赛
Greatest Number Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Saya likes math, because ...
- 山东省第六届省赛 BIGZHUGOD and His Friends II(赛瓦定理)
Description BIGZHUGOD and his three friends are playing a game in a triangle ground. The number of B ...
- ACM学习历程—HDU 5446 Unknown Treasure(数论)(2015长春网赛1010题)
Problem Description On the way to the next secret treasure hiding place, the mathematician discovere ...
- ACM学习历程——HDU5017 Ellipsoid(模拟退火)(2014西安网赛K题)
---恢复内容开始--- Description Given a 3-dimension ellipsoid(椭球面) your task is to find the minimal distanc ...
随机推荐
- HDOJ/HDU Tempter of the Bone(深搜+奇偶性剪枝)
Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, ...
- Yii2 自动更新时间created_at updated_at
创建model之后,新建一条记录,结果设计的表中created_at 字段 updated_at 字段 都是datetime 类型的,却不能自动插入当前时间.查看了资料,解决如下: 1.在class ...
- freemarke之TemplateDirectiveModel详解
http://hougbin.iteye.com/blog/1457924 TemplateDirectiveModel接口是freemarker自定标签或者自定义指令的核心处理接口.通过实现该接口, ...
- SSH开源框架考试题
一.选择题 1.不属于Action接口中定义的字符串常量的是____B___. A.SUCCESS B.FAILURE C.ERROR ...
- 从struts2.1开始Convention零配置
从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...
- Centos安装成功mysql-5.5.37
摘自http://www.2cto.com/os/201404/296364.html(原文请关注) 这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅 Mysql5.5.37安 ...
- Openstack Ice-House 版本号说明--之中的一个 NOVA
OpenStack Icehouse在4.17正式公布,看了下release note,发现改变不小,说明openstack还是在高速发展中,有不少新的特性增加,也有些小的剔除.以下就我所关注的项目做 ...
- Linux I/O Scheduler--CFQ(上)图解
http://blog.csdn.net/vanbreaker/article/details/8299491 http://doc.okbase.net/29060569/archive/46628 ...
- xcode语法高亮插件
转自http://www.cocoachina.com/bbs/read.php?tid=150107 首先感谢该楼主的亲情贡献@不胜感激! 在Xcode4.6.3中,我使用如下方法放到Plugins ...
- 常用JDBC连接字符串
1.MySQL Class.forName( " org.gjt.mm.mysql.Driver " ); Connection conn = DriverManager.getC ...