#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std; /************************************************************************/
/* HDU 5182题 http://acm.hdu.edu.cn/showproblem.php?pid=5182*/
/************************************************************************/ struct node
{
node()
{
number=;
first=;
second=;
difference=;
};
int number;
int first;
int second;
int difference;
};
node arr[]; int cmp(const void* pa,const void* pb)
{
node* a = (node*)pa;
node* b = (node*)pb; if(a->difference != b->difference)return b->difference - a->difference;
else
return a->second - b->second;
} int main()
{
int n;
node temp; while (cin >> n)
{
memset(arr,,sizeof(arr));
for (int i=;i<n;i++)
{ arr[i].number=i;
cin >> arr[i].first >> arr[i].second;
arr[i].difference = arr[i].first - arr[i].second; } //qsort(arr,n,sizeof(node),cmp); //冒泡排序
//当两个node的difference和second都相等时,按照题意应该满足这两个元素
//应该按照输入时的顺序排序,如果利用内置的qsort,这就无法满足要求,因此我用冒泡排序来替换 for (int i =;i<n-;i++)
{
for (int j =;j<n--i;j++)
{
if (arr[j].difference < arr[j+].difference)
{
temp = arr[j];
arr[j]=arr[j+];
arr[j+]=temp;
}
}
} for (int i =;i<n-;i++)
{
for (int j =;j<n--i;j++)
{
if (arr[j].difference == arr[j+].difference && arr[j].second > arr[j+].second)
{
temp = arr[j];
arr[j]=arr[j+];
arr[j+]=temp;
}
}
} for (int i=;i<n-;i++)
{
cout << arr[i].number << " ";
} cout << arr[n-].number<<endl; } return ;
}

HDU 5182的更多相关文章

  1. BestCoder Round #32_1001 以及 hdu 5182

    http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=570&pid=1001 http://acm.hdu. ...

  2. hdu 5182 结构体排序

    BC # 32 : 打 BC 的时候没看全三个关键字,WA 了五发,花了近一小时,问了一下才发现少看一个条件,于是顺利给跪. 题意:给出若干城市的两次空气质量,首先按空气质量差排序,若相等则按第二次排 ...

  3. hdu 5182 PM2.5

    问题描述 目前,我们用PM2.5的含量来描述空气质量的好坏.一个城市的PM2.5含量越低,它的空气质量就越好.所以我们经常按照PM2.5的含量从小到大对城市排序.一些时候某个城市的排名可能上升,但是他 ...

  4. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  6. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  7. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  8. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  9. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

随机推荐

  1. oracle安装时,条件检查不通过解决办法

    1.开始菜单→ 运行:输入regedit,打开注册表 2.依次点开HKEY_LOCAL_MACHINE>>SYSTEM>>CurrenControlSet>>ser ...

  2. ArrayList 和 LinkedList 的实现与区别

    (转载请标明出处) 1.ArrayLis t的实现 2.LinkedLis t的实现 3.ArrayList 和 LinkedList 的区别 ArrayList 的实现: 1.MyArrayList ...

  3. PHP实现页面静态化

    1.通过buffer来实现   需要用file_put_contents ob_get_clean()等内置函数   ob_start (); include "filterpost.htm ...

  4. 洗礼灵魂,修炼python(7)--元组,集合,不可变集合

    前面已经把列表的基本用法讲解完 接着讲python的几大核心之--元组(tuple) 1.什么是元组? 类似列表,但为不可变对象,之前提到列表是可变对象,所谓可变对象就是支持原处修改,并且在修改前后对 ...

  5. 斐波那契数列第N项f(N)[矩阵快速幂]

    矩阵快速幂 定义矩阵A(m*n),B(p*q),A*B有意义当且仅当n=p.即A的列数等于B的行数. 且C=A*B,C(m*q). 例如: 进入正题,由于现在全国卷高考不考矩阵,也没多大了解.因为遇到 ...

  6. java数据库编程之高级查询

    第三章:高级查询(-) 3.1:修改表 3.1.1:修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table ` ...

  7. nodejs后台集成富文本编辑器(ueditor)

    1 下载ueditor nodejs版本 2 复制public目录下面的文件 到项目静态资源public文件夹下 3 在项目根目录创建ueditor文件夹 要复制进来的内容为 4 在根目录的 uedi ...

  8. 执行manage.py syncdb提示Unknown command: 'syncdb'

    1. 实验环境 ubuntu14.4 + django1.9.7 2. 问题描述 在配置完数据库mysite/settings.py后,通常需要运行 python manage.py syncdb 为 ...

  9. Jquery.Uploadify实现批量上传显示进度条 取消 上传后缩略图显示 可删除

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpLoad.aspx.cs&q ...

  10. SqlServer和Oracle中一些常用的sql语句9 SQL优化

    --SQL查询优化 尽量避免使用or,not,distinct运算符,简化连接条件 /*Or运算符*/ use db_business go select * from 仓库 where 城市='北京 ...