Advertisement
Infiniti_Inter

D

Sep 8th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int used[3];
  6. int main()
  7. {
  8.     int n;
  9.     cin >> n;
  10.     vector<pair<int, string> > a(n);
  11.     for (int i = 0; i < n; ++i)
  12.     {
  13.         cin >> a[i].first >> a[i].second;
  14.     }
  15.     sort(a.begin(), a.end());
  16.     vector<pair<int, string> > ans;
  17.     for (int i = 0; i < n; ++i)
  18.     {
  19.         string cur = a[i].second;
  20.         for (int j = 0; j < cur.size();++j)
  21.             if (used[cur[j] - 'A'] == 0)
  22.                 {
  23.                     ans.push_back(make_pair(a[i].first,cur));
  24.                     for (int k = 0; k < cur.size();++k)
  25.                         used[cur[k] - 'A']++;
  26.                 }
  27.     }
  28.     for (int i = 0; i < 3; ++i)
  29.         if (!used[i])
  30.         {
  31.             cout << -1;
  32.             return 0;
  33.         }
  34.     int answer = 0;
  35.     for (int i = ans.size()-1;i >= 0;--i)
  36.     {
  37.          string cur = ans[i].second;
  38.          bool fl = false;
  39.          for (int j = 0; j < cur.size();++j)
  40.             if (used[cur[j] - 'A'] <= 1)fl = true;
  41.         if (!fl)
  42.         {
  43.             ans[i].first = 0;
  44.             for (int j = 0; j < 3; j++)
  45.                 used[j]--;
  46.         }
  47.         answer += ans[i].first;
  48.     }
  49.     cout << answer;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement