제출 #245225

#제출 시각아이디문제언어결과실행 시간메모리
245225penguinhackerACM (COCI19_acm)C++14
50 / 50
8 ms384 KiB
//ACM #include <bits/stdc++.h> using namespace std; #define ll long long #define ar array int n, m; vector<pair<pair<int, int>, string>> team; int toInt(string s) { int res=0, mult=1; for (int i=(int)s.size()-1; ~i; --i) res+=mult*(s[i]-'0'), mult*=10; return res; } int parse(string s) { int res=3600*toInt(s.substr(0, 2)); res+=60*toInt(s.substr(3, 2)); res+=toInt(s.substr(6, 2)); return res; } void re(pair<int, int> &p) { string s; cin >> s; if (s[0]=='-') return; ++p.first; p.second+=(s[1]-'1')*1200; p.second+=parse(s.substr(3, 8)); } bool srt(pair<pair<int, int>, string> a, pair<pair<int, int>, string> b) { assert(a.second!=b.second); if (a.first.first!=b.first.first) return a.first.first>b.first.first; if (a.first.second!=b.first.second) return a.first.second<b.first.second; return a.second<b.second; } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for (int i=0; i<=n; ++i) { string name; cin >> name; pair<int, int> p={0, 0}; for (int j=0; j<m; ++j) { re(p); } if (i<n&&name=="NijeZivotJedanACM") continue; team.push_back({p, name}); } //for (auto x : team) // cout << x.first.first << ' ' << x.first.second << ' ' << x.second << '\n'; assert((int)team.size()==n); sort(team.begin(), team.end(), srt); //for (auto x : team) // cout << x.first.first << ' ' << x.first.second << ' ' << x.second << '\n'; for (int i=0; i<n; ++i) { if (team[i].second=="NijeZivotJedanACM") { cout << i+1; break; } } return 0; } /* stuff you should look for * int overflow, array bounds * special cases (n=1?) * do smth instead of nothing and stay organized * WRITE STUFF DOWN */
#Verdict Execution timeMemoryGrader output
Fetching results...