[165]座標の整列
2260 ワード
[165]座標の整列
質問する
2 D平面上のN個の点を与える.x座標のインクリメント順に座標を並べ、x座標が同じ場合はy座標のインクリメント順に座標を並べ、プログラム出力を記述します.
入力
第1行は、点の個数N(1≦N≦100000)を与える.2行目から、N行においてi番点の位置xiとyiが与えられる.(−1000≦xi,yi≦100000)座標は常に整数であり、2つの位置が同じ点はない.
しゅつりょく
最初の行からN行の位置合わせの結果を出力します.
コード#コード#
#include <iostream>
#include <algorithm>
#include <utility>
using namespace std;
bool comp(pair<int, int> a, pair<int, int> b) {
if(a.first == b.first) {
return a.second < b.second;
} else {
return a.first < b.first;
}
}
int main() {
int N, x, y;
pair<int, int> input[100000];
scanf("%d", &N);
for(int i = 0; i < N; i++) {
scanf("%d%d", &x, &y);
input[i] = make_pair(x, y);
}
sort(input, input+N, comp);
for(int i = 0; i < N; i++) {
printf("%d %d\n", input[i].first, input[i].second);
}
}
追加の説明
データはペアです.
データをpairにグループ化し,
アルゴリズムタイトルのsortを使用して配列をソートします.
このとき,comp関数を作成し,条件に基づいて比較できるようにした.
ソース:https://www.acmicpc.net/problem/11650
Reference
この問題について([165]座標の整列), 我々は、より多くの情報をここで見つけました https://velog.io/@kkoala/11650-좌표-정렬하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol