本記事は管理人が競技プログラミングを始めたため,その精進日記としてログを取ったものです。アウトプットして積極的にモチベーションを上げていく作戦です。まずはc++を習得するところから始めます。その他の記事は以下をご覧ください。
【競プロ精進日記】目次まとめ
ABC
Atcoder Beginner Contestの過去問を解いています。最低限のコメントと一言が添えられています。
...
スポンサーリンク
pair/tupleとauto
C++入門 AtCoder Programming Guide for beginners (APG4b)を1からさらっていく内容です。
#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;
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(b, a) = AB[i];
cout << a << " " << b << endl;
}
}
ペアやタプルを使ってみましょうというお話。またまたsegmentation faultを起こしてしまいましたが,vectorの初期化ミスでした。 「vector<pii> AB」だけでは,vectorの長さが指定されていないためにエラーを吐いていたものと思われます。
1つ目の値でソートするためにペアの順番を変えて格納するというアイディアはこれからも使いそうです。