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 ...
随机推荐
- Ubuntu----1
1. 安装ubuntu之后,你必须要做的事情, 引自:http://itsfoss.com/things-to-do-after-installing-ubuntu-13-04/ 但是对于国人来讲,墙 ...
- JavaScript高级程序设计25.pdf
Text类型 文本类型由Text类型表示,包含纯文本内容,可以包含转义后的HTML字符,但不能包含HTML代码.Text节点具有以下特征: nodeType的值为3: nodeName的值为" ...
- Why do we need smart pointer and how to implement it.
Here are two simple questions. Problem A #include <string> include <iostream> using name ...
- 天津Uber优步司机奖励政策(1月25日~1月31日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 缺少HTML Doctype造成的样式问题
很简单的一个登陆界面: 代码: <html> <head> <style type="text/css"> form span { displa ...
- CSS备忘笔记
一.CSS的概念 CSS(Cascading Style Sheet),中文译为层叠样式表,它是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言. 二.CSS使用方式 使用CSS控制页面 ...
- How I Mathematician Wonder What You Are! - POJ 3130(求多边形的核)
题目大意:判断多多边形是否存在内核. 代码如下: #include<iostream> #include<string.h> #include<stdio.h> # ...
- Oracle ROWNUM用法和分页查询总结(转)
[转载] Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询格式(一):http://yangtingkun.itpub.net/post/468/100278 ...
- nginx配置文件的说明
设置连接超时时间 http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout ...
- PAT 1017. Queueing at Bank
Suppose a bank has K windows open for service. There is a yellow line in front of the windows which ...