本文主要是介绍ural1100--Final Standings--数据结构--结构体排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ORZ翁教把URAL的数据结构刷完了,于是也尝试着开始刷URAL的数据结构。。。。FIGHTTING!
很囧的在URAL的第一跑就WRONG了,还是跪给了数据结构的第一题。
诶,好讨厌= =#。。。
以下是题目。。。。。。
1100. Final Standings
Memory limit: 16 MB
Input
Output
Sample
input | output |
---|---|
8 1 2 16 3 11 2 20 3 3 5 26 4 7 1 22 4 | 3 5 26 4 22 4 16 3 20 3 1 2 11 2 7 1 |
Hint
while (exists A[i] and A[i+1] such as A[i] < A[i+1]) do
Swap(A[i], A[i+1]);
Problem Source: Tetrahedron Team Contest May 2001
所谓stable_sort,是指对一个序列进行排序之后,如果两个元素的值相等,则原来乱序时在前面的元素现在(排好序之后)仍然排在前面。STL中提供stable_sort()函数来让我们进行稳定排序。为了更好的说明稳定排序的效果,我们定义了一个结构体元素,一个value成员和一个index成员,前者表示元素的值,后者表示乱序时的索引。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxnum=150010;
struct student
{int id;int val;bool operator<(const student&temp) const{return val>temp.val;}
}a[maxnum];int main()
{//freopen("input.txt","r",stdin);int n;scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d%d",&a[i].id,&a[i].val);stable_sort(a+1,a+1+n);for(int i=1;i<=n;++i)printf("%d %d\n",a[i].id,a[i].val);return 0;
}
这篇关于ural1100--Final Standings--数据结构--结构体排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!