fork download
  1. #include<stdio.h>
  2. #include<algorithm>
  3. #include<string>
  4. #include<iostream>
  5. #include<vector>
  6. #include<map>
  7. using namespace std;
  8. struct Qr {int a, b, c;}Q[1212];
  9. bool sort_a(Qr a, Qr b) {return a.a < b.a;}
  10. map<string, int>M;
  11. int state[12121];
  12. int main() {
  13. int n, m = 0;
  14. scanf("%d", &n);
  15. for (int i = 0; i < n; i++) {
  16. int a,c;
  17. string b;
  18. cin >> a >> b >> c;
  19. if (M.find(b) == M.end())M[b] = m++;
  20. Q[i] = { a,M[b],c };
  21. }
  22. sort(Q, Q + n,sort_a);
  23. Q[n].a = 1e9;
  24. for (int i = 0; i < m; i++)state[i] = 7;
  25. int ans = 0;
  26. vector<int>befwho;
  27. for (int i = 0; i < m; i++)befwho.push_back(i);
  28. for (int i = 0; i < n; i++) {
  29. state[Q[i].b] += Q[i].c;
  30. if (Q[i].a == Q[i + 1].a)continue;
  31. int mx = -1;
  32. for (int j = 0; j < m; j++) mx = max(state[j], mx);
  33. vector<int>who;
  34. for (int j = 0; j < m; j++) if (state[j] == mx)who.push_back(j);
  35. if (who.size() != befwho.size())ans++;
  36. else for (int j = 0; j < who.size(); j++)if (who[j] != befwho[j]) { ans++; break; }
  37. befwho.clear();
  38. for (int j = 0; j < who.size(); j++)befwho.push_back(who[j]);
  39. }
  40. printf("%d", ans);
  41. return 0;
  42. }
Success #stdin #stdout 0s 4260KB
stdin
4
7 Mildred +3
4 Elsie -1
9 Mildred -1
1 Bessie +2
stdout
3