fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef vector<int> vi;
  6.  
  7. vi loc, inter;
  8. int sum = 0, n, l, tmpi, h = 0;
  9. string s, c, tmp;
  10. int main()
  11. {
  12. cin >> n >> l;
  13. cin >> c;
  14. for (int i = 0; i < n; ++i) {
  15. cin >> tmp >> s >> tmpi;
  16. sum += tmpi;
  17. if (s == c)
  18. loc.push_back(tmpi);
  19. else
  20. inter.push_back(tmpi);
  21. }
  22. if (sum < l) {
  23. cout << "NO FORMATION";
  24. return 0;
  25. }
  26. sum = 0;
  27. sort(loc.begin(), loc.end());
  28. reverse(loc.begin(), loc.end());
  29.  
  30. sort(inter.begin(), inter.end());
  31. reverse(inter.begin(), inter.end());
  32. int m = loc.size();
  33. if (m > 11) m = 11;
  34. for (int i = 0; i < m; ++i) {
  35. sum += loc[i];
  36. ++h;
  37. }
  38.  
  39. for (int i = 0; i < 11-m; ++i) {
  40. sum += inter[i];
  41. }
  42. int i = m;
  43. while (sum < l) {
  44. sum -= loc[m];
  45. --h;
  46. sum += inter[11-m];
  47. --m;
  48. }
  49. cout << h << " " << sum << "\n";
  50.  
  51.  
  52. return 0;
  53. }
  54.  
Success #stdin #stdout 0s 3464KB
stdin
13 85
Argentina
Romero England 8
Mercado Argentina 4
Otamendi Spain 7
Ramiro England 8
Rohjo England 6
Fernandez Spain 6
Mascherano Spain 8
Gaitan Protugal 6
Banega Spain 7
Dimaria France 9
Higuin Italy 9
Aguero England 10
Messi Spain 10
stdout
1 86