fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #define L 2002
  5. int n, m, k,f[L];
  6. using namespace std;
  7. vector <int> s;
  8.  
  9. int main() {
  10.  
  11. cin >> n >> m >> k;
  12. for (int i = 0; i < m; i++) {
  13. cin >> f[i];
  14. }
  15. for (int i = 0, t; i < k; i++) {
  16. cin >> t;
  17. s.push_back(t);
  18. }
  19. sort(f, f + m);
  20. int ans = 0;
  21. for (int i = m - 1; i >= 0; i--) {
  22. cout<<f[i]<<" ";
  23. if (n == 0)
  24. break;
  25. if (f[i] <= n) {
  26. ans += f[i];
  27. n -= f[i];
  28. }
  29. else {
  30. s.push_back(f[i]);
  31. }
  32. }
  33. // cout<<ans<<endl;
  34. sort(s.begin(), s.end());
  35. for (int i = s.size() -1; i >= 0; i--) {
  36. if (n <= 1)
  37. break;
  38. if (n >= s[i]) {
  39. n -= s[i];
  40. ans += s[i] - 1;
  41. }
  42. else {
  43. ans += n - 1;
  44. n = 0;
  45. break;
  46. }
  47. }
  48. cout << ans;
  49. return 0;
  50. }
Success #stdin #stdout 0s 15248KB
stdin
250 40 50
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 150 80 60 40 3 3 3 3 3 3 3 3 3 3 3 3 3
32 47 72 61 65 38 42 42 68 70 64 41 65 64 35 60 54 52 26 68 20 41 46 22 66 60 21 16 20 62 27 63 61 53 47 17 23 53 37 46 34 67 49 59 54 19 17 60 51 34
stdout
150 80 60 40 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 249