今天刷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; }