给定n
二维空间中的点,按升序对所有点进行排序。
(x1,y1) > (x2,y2) if and only if (x1>x2) or (x1==x2 && y1<y2)
输入规格:
第一行包含一个整数t
,即测试用例的数量。然后对于每个测试用例,第一行包含一个整数n
,即点数。然后接下来的n
行包含两个整数xi
,yi
代表点。
输出规格:
对于每个测试用例,打印点的排序顺序。输入约束:
1 <= t <= 10
1 <= n <= 100000
- 10 ^ 9 <= co - ordinates <= 10 ^ 9
注意:严格的时间限制。更喜欢scanf
/ printf
/BufferedReader
而不是cin
/ cout
/ Scanner
。
样本输入:
1
5
3 4
-1 2
5 -3
3 3
-1 -2
样本输出:
-1 2
-1 -2
3 4
3 3
5 -3
我声明了 a ,现在如果键相等set
,我想按降序(值)排序。这是我的代码:
int main()
{
int n, i, hold = 0;
set<pair<int, int>>s;
int x, y, t;
set<pair<int, int>>::iterator it;
SF(t)
while (t--)
{
SF(n) while (n--) {
SF(x) SF(y)
s.insert({ x,y });
}
for (it = s.begin(); it != s.end(); it++) {
PF(it->first) printf(" "); PF(it->second); printf("\n");
}
s.clear();
}
return 0;
}
我的输出
-1 -2
-1 2
3 3
3 4
5 -3
如果键相同,我希望键值按降序排序。