結果
問題 | No.8042 本棚 |
ユーザー |
![]() |
提出日時 | 2019-04-02 21:28:50 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 726 bytes |
コンパイル時間 | 1,039 ms |
コンパイル使用メモリ | 94,252 KB |
最終ジャッジ日時 | 2025-01-07 01:21:17 |
ジャッジサーバーID (参考情報) |
judge4 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> #include<string> #include<map> #include<numeric> int main() { int n; std::cin >> n; std::vector<std::string> s(n), id(n); for (int i = 0; i < n; i++) std::cin >> s[i] >> id[i]; std::map<std::string, int> t; t["iti"] = 1; t["ni"] = 2; t["san"] = 3; t["yon"] = 4; std::vector<int> indexes(n); std::iota(indexes.begin(), indexes.end(), 0); std::sort(indexes.begin(), indexes.end(), [&](int i1, int i2){ if (s[i1] == s[i2]) { return t[id[i1]] < t[id[i2]]; } else { return s[i1] < s[i2]; } }); for (int i : indexes) std::cout << s[i] << " " << id[i] << std::endl; }