zuka
ついに競技プログラミングを始めました!
本記事は,管理人の競技プロ精進日記としてログを取ったものです。モチベーションを爆上げするために,積極的にアウトプットしていく作戦です。これから競技プログラミングを始めようと考えている人や,なんとなく敷居が高いと感じている人の参考になれば嬉しく思います。その他の記事は以下をご覧ください。
目次
本記事の概要
Atcoderが公表しているc++の入門記事の内容を1からさらっていくものです。今回は3.02.pair/tupleとautoです。
実装
#include <bits/stdc++.h>
#define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;
using pii = pair<int, int>;
int main() {
int N;
cin >> N;
// pair<int, int>の配列
// 上でマクロを定義している
vector<pii> AB(N);
rep(i, N){
cin >> AB[i].second;
cin >> AB[i].first;
}
// 小さい順にソート
sort(AB.begin(), AB.end());
rep(i, N){
int a, b = 0;
// tieでpairを解く
tie(b, a) = AB[i];
cout << a << " " << b << endl;
}
}
ポイント
今回おさえるべき内容
pair
型を使えばデータの集まりを見通しよく扱える
pair
はmake_pair
で生成できる
auto
で変数宣言すれば自動的に型を決めてくれる
変数のペアを保持できる型にpair
型があります。pair
はmake_pair
を使って生成でき,.first
で最初の要素,.second
で2つ目の要素にアクセスできます。tie
を使えばpair
から1つずつの変数を取り出すことができます。
また,変数宣言の際に便利な記法にautoがあります。例えばauto x = "test"
とした場合にはx
はstring
型になります。
コメント