Advertisement
ke_timofeeva7

выборы

Jun 2nd, 2021
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <memory.h>
  7. #include <stdio.h>
  8. #include <stack>
  9. #include <deque>
  10. #include <queue>
  11. #include <vector>
  12. #include <set>
  13. #include <iterator>
  14. #include <map>
  15. #include <iomanip>
  16. #include <unordered_set>
  17. #define int long long
  18. #define sp system("pause")
  19. #define pb push_back
  20. #define double long double
  21. #define endl "\n"
  22. #define un unsigned
  23. #define INF 1000000009
  24. #define pii pair<int, int>
  25. #define all(v) v.begin(), v.end()
  26. using namespace std;
  27.  
  28. int n1;
  29.  
  30. istream& operator >> (istream& in, vector<int>& a)
  31. {
  32.     for (int i = 0; i < n1; i++)
  33.     {
  34.         in >> a[i];
  35.     }
  36.  
  37.     return in;
  38. }
  39.  
  40. ostream& operator << (ostream& out, vector<char>& a)
  41. {
  42.     for (int i = n1 - 1; i > -1; i--)
  43.     {
  44.         out << a[i];
  45.     }
  46.  
  47.     return out;
  48. }
  49.  
  50. signed main()
  51. {
  52.     ios_base::sync_with_stdio(0);
  53.     cin.tie();
  54.     cout.tie();
  55.     cout.precision(7);
  56.  
  57.     int n;
  58.     cin >> n;
  59.  
  60.     map<string, int> mp;
  61.  
  62.     for (int i = 0; i < n; i++)
  63.     {
  64.         string s;
  65.         int k;
  66.         cin >> s >> k;
  67.  
  68.         mp[s] = k;
  69.     }
  70.  
  71.     int m;
  72.     cin >> m;
  73.  
  74.     map<string, map <string, int>> gol;
  75.  
  76.     for (int i = 0; i < m; i++)
  77.     {
  78.         string a, b;
  79.         cin >> a >> b;
  80.  
  81.         gol[a][b]++;
  82.     }
  83.  
  84.     map<string, int> kon;
  85.  
  86.     for (auto i : gol)
  87.     {
  88.         int kol = 0;
  89.         string name = "";
  90.  
  91.         for (pair<string, int> j : i.second)
  92.         {
  93.             if (j.second > kol)
  94.             {
  95.                 name = j.first;
  96.                 kol = j.second;            
  97.             }
  98.  
  99.             kon[j.first] += 0;
  100.         }
  101.  
  102.         kon[name] += mp[i.first];
  103.     }
  104.  
  105.     set<pair<int, string>> ans;
  106.  
  107.     for (auto i : kon)
  108.     {
  109.         ans.insert({ i.second, i.first });
  110.     }
  111.  
  112.     auto it = ans.end();
  113.     it--;
  114.  
  115.     for ( ; it != ans.begin(); it--)
  116.     {
  117.         auto i = *it;
  118.  
  119.         cout << i.second << " " << i.first << endl;
  120.     }
  121.  
  122.     cout << (*ans.begin()).second << " " << (*ans.begin()).first;
  123.  
  124.     return 0;
  125. }
  126.  
  127.  
  128.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement