題目大意
輸入時間後加總排序。兩題差不多就放一起了。
題解
不正確的教學文件真的誤人一生,很多 C++ 基礎教學都沒有很認真地介紹 cin
的細節處理,遇到特殊格式,比如說本題的時間 hh:mm
就要繞一圈做。殊不知其實單純的 cin
就能正確處理了,不需要改寫成 C 語言的 scanf("%d:%d")
,用 cin >> i >> ch >> j
即可處理,非常直觀!
真應該認真寫一篇 C++ 輸入截斷規則的教學才對。
AC Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <bits/stdc++.h> using namespace std; using ll = long long;
int main() { ios::sync_with_stdio(false); cin.tie(0);
int N, M; while (cin >> N >> M) { vector<pair<int,int>> data(M); for (int j=0;j<M;++j) data[j].second = j+1;
for (int i=0;i<N;++i) for (int j=0;j<M;++j) { int a, b; char ch; cin >> a >> ch >> b; data[j].first += a*60+b; } sort(data.begin(), data.end()); for(auto [a,b]:data) cout << b << ' ' << a << '\n'; } }
|
OJ 連結
連結:https://zerojudge.tw/ShowProblem?problemid=b973