http://acm.nyist.net/JudgeOnline/problem.php?pid=8
注意,用sort排序的时候,传的是(开始位置的指针,接受比较的指针);
然后就是在结构体重,重载操作符,注意在结构体中,如果想按一定的规律排序是必须重载操作符的,包括< ==.
重载操作符下面是用qsort写的.
代码如下:
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <string.h>
using namespace std;
struct Node{
int num;
int l;
int h;
bool operator < (Node t) const//重载小于号
{
int L1 = max(l, h);
int H1 = min(l, h);
int L2 = max(t.l, t.h);
int H2 = min(t.l, t.h);
if(num!=t.num)
return num<t.num;//重载操作符
else
{
if(L1!=L2)
return L1<L2;
else
return H1<H2;
}
}
bool operator == (Node t) const//重载等于号
{
int L1 = max(l, h);
int H1 = min(l, h);
int L2 = max(t.l, t.h);
int H2 = min(t.l, t.h);
return L1 == L2 && H1