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