Max_Leb

Untitled

Jan 29th, 2022
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. #include <iostream>
  2. void merge(int s[], int left, int right)
  3. {
  4. if (left == right)
  5. return;
  6. int middle = (right + left) / 2;
  7. int i = left;
  8. int j = middle + 1;
  9. merge(s, left, middle);
  10. merge(s, middle + 1, right);
  11. int tmp[right - left + 1];
  12. for (int tmpInd = left; tmpInd <= right; ++tmpInd)
  13. {
  14. if (i <= middle && (j > right || s[i] <= s[j]))
  15. {
  16. tmp[tmpInd - left] = s[i];
  17. ++i;
  18. }
  19. else
  20. {
  21. tmp[tmpInd - left] = s[j];
  22. ++j;
  23. }
  24. }
  25.  
  26.  
  27. for (int tmpInd = left; tmpInd <= right; ++tmpInd)
  28. {
  29. s[tmpInd] = tmp[tmpInd - left];
  30. }
  31. }
  32.  
  33.  
  34.  
  35. int main() {
  36. int N, M;
  37. std::cin >> N >> M;
  38. int capacity[N * M];
  39. for (int i = 0; i < N * M; ++i)
  40. std::cin >> capacity[i];
  41. merge(capacity, 0, N * M - 1);
  42. int K;
  43. std::cin >> K;
  44. int Mesklinites[K];
  45. int result = 0;
  46. for (int i = 0; i < K; ++i)
  47. std::cin >> Mesklinites[i];
  48. merge(Mesklinites, 0, K - 1);
  49.  
  50.  
  51. for (int i = 0; i < K; ++i){
  52. for (int j = 0; j < N * M; ++j){
  53. if (Mesklinites[i] <= capacity[j]){
  54. result++;
  55. capacity[j] = -1;
  56. break;
  57. }
  58. }
  59. }
  60.  
  61. std::cout << result;
  62.  
  63. return 0;
  64. }
  65.  
Advertisement
Add Comment
Please, Sign In to add comment