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 ...
随机推荐
- 2013 ACM区域赛长沙 C Collision HDU 4793
题意:在平面上0,0点,有一个半径为R的圆形区域,并且在0,0点固定着一个半径为RM(<R)的圆形障碍物,现在圆形区域外x,y,有一个半径 为r的,并且速度为vx,vy的硬币,如果硬币碰到了障碍 ...
- Twitter 工程师谈 JVM 调优
一. 调优需要关注的几个方面 内存调优 CPU 使用调优 锁竞争调优 I/O 调优 二. Twitter 最大的敌人:延迟 导致延迟的几个原因? 最大影响因素是 GC 其他的有:锁和线程调度.I/O. ...
- 集中式vs分布式
Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候 ...
- tensorflow 保存变量,
代码: #!usr/bin/env python# coding:utf-8"""这个代码的作用是 通过 tensorflow 来计算 y = 0.3x + 0.1 的线 ...
- 微信开发第3章 通过accesstoken获取用户分组
上一章我们获取到了access_token,那么我们可以试着拿token获取用户粉丝分组,调用接口地址为: http请求方式: GET(请使用https协议) https://api.weixin.q ...
- mysql按字段分组并获取每个分组按照某个字段排序的前三条
这是原始数据 想按照brand_id分组 并获取每个分组total_num最高的前3位 SQL语句为: > (select count(*) from data where brand_id = ...
- HTML5 API 浏览器支持情况检测
HTML5发展到现在,虽说没有大规模的普及,但在我们日常生活中,也很容易见到了,HTML5的游戏.网站.应用也是层出不穷.而作为前端人员,也应该多了解这些API为以后应用打基础,下面我将给大家介绍 H ...
- 黑马程序猿——Java中的类载入器
------- android培训.java培训.期待与您交流! -------- 类载入器 Java虚拟机中能够安装多个类载入器,系统默认三个主要类载入器,每一个类负责载入特定位置的类: BootS ...
- UDP编程
一: socket编程中的几种地址 Socket编程会遇到三种地址, 都是定义的结构体(struct): Struct in_addr { Unsigned int s_add ...
- windows 下一个 easy_install 设备
下载安装python安装工具 1,方法是下载ez_setup.py后 2,在cmd下运行 python ez_setup.py.就可以自己主动安装setuptools 3,环境变量设置将 C:\Pro ...