Quiz
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP2_5_B
Submission
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=3574803#1
説明
- 5変数を辞書順にソート
- 値なら小さい順、文字列なら辞書順なので、2変数ならpairでやっていた
- 今回は5変数なのでtupleを使う
- もしくは構造体 or クラスを使い、比較関数も定義してソート
- タイトルに合わせてtupleを使った
- しかし出力時などの値取り出しにtieを使うなどする必要があり、使い心地は良くない
- 整理して書きたいときは、私はstructを使うだろう
コンパイルオプション
g++ -std=c++14 answer.cpp
Code
#include<bits/stdc++.h> using namespace std; using ll = long long; #define FOR(i,a,b) for(ll i=(a);i<(b);++i) #define ALL(v) (v).begin(), (v).end() typedef tuple<ll, ll, char, ll, string> T; int main(){ ll N; cin >> N; vector<T> A; FOR(i, 0, N){ ll a, b; char c; ll d; string e; cin >> a >> b >> c >> d >> e; A.push_back(make_tuple(a, b, c, d, e)); } sort(ALL(A)); for(auto tup : A){ ll a, b; char c; ll d; string e; tie(a, b, c, d, e) = tup; cout << a << ' ' << b << ' ' << c << ' ' << d << ' ' << e << endl; } return 0; }