EX22 - 3.02
Editorial
/
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
整数a_i, b_iのペア(a_i, b_i)がN個与えられます(1 \leq i \leq N)。b_iが小さい順にペアを並べ替えてください。
制約
- 1 \leq N \leq 100
- 1 \leq a_i, b_i \leq 10^9
- b_iは全て異なる
- 入力はすべて整数
入力
入力は次の形式で標準入力から与えられます。
N a_1 b_1 a_2 b_2 ︙ ︙ a_N b_N
出力
ペアを並べ替えた順に1行毎に出力してください。 各ペアはa_i、b_iをスペース区切りで出力してください。
ジャッジでは以下の入力例以外のケースに関してもテストされることに注意。
入力例1
3 5 2 2 7 4 1
出力例1
4 1 5 2 2 7
(5, 2), (2, 7), (4, 1)という3つのペアがあり、b_iの値が小さい順に並べ替えると、(4, 1), (5, 2), (2, 7)となります。
入力例2
5 1 2 3 4 5 6 7 8 9 10
出力例2
1 2 3 4 5 6 7 8 9 10
ヒント
クリックでヒントを開く
pair<int, int>
で2つの整数のペアを表すことができます。- pairを比較すると、1番目の値で比較され、等しい場合は2番目の値で比較されます。
- 配列を要素が小さい順に並べ替えるには
sort(a.begin(), a.end());
とします。
テスト入出力
書いたプログラムがACにならず、原因がどうしてもわからないときだけ見てください。
クリックでテスト入出力を見る
テスト入力1
100 93 4 54 22 36 41 55 65 48 27 12 1 37 67 68 39 80 10 56 8 87 90 16 47 76 88 38 13 46 87 40 48 84 68 94 33 49 29 3 11 98 6 18 21 85 77 23 45 73 58 78 42 31 12 21 60 66 54 47 14 9 7 28 53 41 82 91 83 61 74 92 91 96 95 90 81 17 66 22 89 72 43 39 56 57 80 70 100 58 69 74 34 51 64 25 20 67 25 97 62 63 55 19 26 15 2 82 5 20 92 34 31 43 73 79 28 1 57 99 32 13 38 88 36 24 51 59 19 64 23 89 79 65 3 81 84 27 78 44 52 53 59 6 61 50 71 14 40 2 49 83 75 77 96 30 85 95 15 71 86 35 50 52 44 42 18 75 70 29 94 8 46 60 76 5 98 69 93 11 99 10 72 32 35 7 9 86 24 26 16 62 17 100 97 4 30 45 63 33 37
テスト出力1
12 1 15 2 65 3 93 4 82 5 98 6 9 7 56 8 7 9 80 10 3 11 31 12 38 13 47 14 95 15 26 16 62 17 42 18 59 19 25 20 18 21 54 22 64 23 86 24 67 25 19 26 48 27 79 28 49 29 4 30 34 31 99 32 94 33 74 34 32 35 88 36 33 37 13 38 68 39 14 40 36 41 78 42 72 43 52 44 23 45 8 46 16 47 40 48 2 49 35 50 24 51 44 52 28 53 66 54 63 55 39 56 1 57 73 58 53 59 21 60 6 61 97 62 45 63 51 64 55 65 17 66 37 67 84 68 58 69 75 70 50 71 10 72 43 73 61 74 83 75 60 76 85 77 27 78 89 79 57 80 90 81 41 82 91 83 81 84 30 85 71 86 46 87 76 88 22 89 87 90 92 91 20 92 69 93 29 94 96 95 77 96 100 97 5 98 11 99 70 100
テスト入力2
100 516111320 607515272 222610184 248356480 61883986 245487676 206662228 533989888 69129331 777444148 240199961 432234636 426231114 336813804 321022003 57262799 987178129 850725892 947102866 972781313 925126447 138391343 616274448 355808755 714725587 135574527 242294936 747031846 712001433 210877082 181182763 770306728 93942008 774494957 724829041 835108740 344285556 521741371 833231327 603241645 607948534 214246948 918457894 886239485 235309772 705607918 283022479 376033551 274016160 224876948 119317651 487762742 86470334 681700654 230829137 667556773 786823599 522783812 552745413 742568795 187877449 678955882 92450487 797581025 57997903 741784382 15453784 899476414 228873791 489714188 923423708 985237362 178220373 117577774 523186879 681227121 841286768 74441749 229826134 478391450 62710049 210080103 594857199 60772664 728567957 220290043 277000690 799270840 828251052 813032112 322627026 328640184 630777206 93015078 143835290 305081041 78963996 850741582 185710453 415807807 224069168 194535462 765198511 925540935 67423218 161316172 139362266 380170512 23387958 140419953 727968221 212850176 929329071 680065291 80699708 674702419 824108967 489282458 563350357 865651077 580350921 922504314 124656307 134201888 513360123 776145804 161691774 176062866 681917529 535777959 798798922 678858034 778992896 889103485 983935974 111383938 589373003 592835023 980332103 729109938 586355723 562793775 424189799 402925777 326355130 246164484 106061524 868992059 175266265 361785497 247489202 829929333 872172162 585678993 725362470 819053997 856167633 586840059 474710785 856608830 638675377 822416002 176847119 78399228 238118171 211620634 302761599 410660344 340827370 584914156 840925927 471614751 278196506 194743308 921788254 661004915 418241172 372234551 423524176 744703832 79167871 125578990 808014283 603127562 319194141 766981002 81534592 626533314 359147052 464468288 279768551 598170192 659558263 966172428 339372240 602852466 583878922 371264416 674367424 759010423
テスト出力2
321022003 57262799 594857199 60772664 841286768 74441749 176847119 78399228 630777206 93015078 983935974 111383938 178220373 117577774 79167871 125578990 124656307 134201888 714725587 135574527 925126447 138391343 23387958 140419953 67423218 161316172 161691774 176062866 224069168 194535462 278196506 194743308 62710049 210080103 712001433 210877082 238118171 211620634 727968221 212850176 607948534 214246948 728567957 220290043 274016160 224876948 61883986 245487676 326355130 246164484 222610184 248356480 143835290 305081041 322627026 328640184 426231114 336813804 616274448 355808755 175266265 361785497 583878922 371264416 418241172 372234551 283022479 376033551 139362266 380170512 424189799 402925777 302761599 410660344 185710453 415807807 240199961 432234636 359147052 464468288 840925927 471614751 229826134 478391450 119317651 487762742 824108967 489282458 228873791 489714188 344285556 521741371 786823599 522783812 206662228 533989888 681917529 535777959 586355723 562793775 340827370 584914156 872172162 585678993 856167633 586840059 589373003 592835023 279768551 598170192 339372240 602852466 808014283 603127562 833231327 603241645 516111320 607515272 81534592 626533314 921788254 661004915 230829137 667556773 80699708 674702419 798798922 678858034 187877449 678955882 929329071 680065291 523186879 681227121 86470334 681700654 235309772 705607918 980332103 729109938 57997903 741784382 552745413 742568795 423524176 744703832 242294936 747031846 674367424 759010423 319194141 766981002 181182763 770306728 93942008 774494957 513360123 776145804 69129331 777444148 92450487 797581025 277000690 799270840 828251052 813032112 725362470 819053997 638675377 822416002 247489202 829929333 724829041 835108740 987178129 850725892 78963996 850741582 474710785 856608830 563350357 865651077 106061524 868992059 918457894 886239485 778992896 889103485 15453784 899476414 580350921 922504314 765198511 925540935 659558263 966172428 947102866 972781313 923423708 985237362
解答例
必ず自分で問題に挑戦してみてから見てください。
クリックで解答例を見る
pair<int, int>
の配列を用意して、(b_i, a_i)となるように格納すれば、sortするだけでbが小さい順に並べ替えることができます。
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vector<pair<int, int>> p(N); for (int i = 0; i < N; i++) { int a, b; cin >> a >> b; p.at(i) = make_pair(b, a); // b, a の順でペアにする } sort(p.begin(), p.end()); for (int i = 0; i < N; i++) { int b, a; tie(b, a) = p.at(i); // b, a の順であることに注意 cout << a << " " << b << endl; } }