HDU 5182
2024-10-18 14:47:35
#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 ;
}
最新文章
- LeetCode First Bad Version (二分查找)
- MyEclipse的Hibernate Reverse Engineering失败解决方法
- HW3.17
- Python 手册(一)
- Bootstrap 轮播(Carousel)插件
- eclipse使用Git插件
- poj3206(bfs+最小生成树)
- 【MYSQL】SQL 的join 区别
- Android类参考---SQLiteOpenHelper
- 中文注释 MariaDB my.cnf 大型服务器配置模板
- codeforces——961B. Lecture Sleep
- 通过源码理解HashMap的并发问题
- CentOS7查看和关闭防火墙
- navicat for mysql 注册码,简简单单,一个搞定(蔡军帅亲测有效)
- HDU 3746 Cyclic Nacklace (KMP求循环节问题)
- gulp安装和使用
- matplotlib可视化之如何给图形添加数据标签?
- poj 2632 Crashing Robots(模拟)
- C#基础之委托
- how to update product listing price sale price and sale date using mobile App
热门文章
- 笔记|《简明Python教程》:编程小白的第一本python入门书
- SyntaxError: (unicode error) &#39;unicodeescape&#39; codec can&#39;t decode bytes in position 2-3: truncated \UXXXXXXXX escape
- 编码格式简介:ASCII码、ANSI、GBK、GB2312、GB18030和Unicode、UTF-8,BOM头
- Query DSL(1)
- FastDFS 分布式文件系统的安装与使用
- PIC24 通过USB在线升级 -- USB HID bootloader
- Ubuntu Docker 版本的更新与安装
- linux备份文件脚本
- 悟透JavaScript (一)
- Python系列之正则表达式详解