【stable_sort稳定排序】

今天刷ural的1100才发现原来有这么一个神奇的DD——stable_sort,作用是若有多个值,根据第三个参数来排序而不改变其他值的出现次序。。。呃,比较难明,自己慢慢体会吧

http://acm.timus.ru/problem.aspx?space=1&num=1100

#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <string.h>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <limits.h>

using namespace std;

#define LL long long
#define pi acos(-1)
#define N  150010
#define INF INT_MAX
#define eps 1e-8
//*********************************************
//ural 1100
//*********************************************

struct node
{
    int id;
    int val;
}e[N];
bool cmp(node a,node b)
{
    return a.val>b.val;
}
int main()
{
    //freopen("a.txt","r",stdin);
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i,j;
        for(i=0;i<n;i++)
        scanf("%d%d",&e[i].id,&e[i].val);
        stable_sort(e,e+n,cmp);//稳定排序,若相同,则不改变其出现顺序
        for(i=0;i<n;i++)
        printf("%d %d\n",e[i].id,e[i].val);
    }
    return 0;
}


你可能感兴趣的:(struct,ini)