Advertisement
ekaterinaparamonova

Untitled

Feb 28th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. # Задание 27
  2. 1) 2 задачи (2 балла, 4 балла)
  3. 2 балла - сохранить весь вход в один большой
  4. массив и перебрать (много вложенных циклов)
  5. 4 балла
  6. - нельзя хранить всё в массиве
  7. (! но сами массивы не запрещены, главное, чтобы
  8. их длина не зависела от входа)
  9. - 1 Кб = 256 int (10 переменных + int[200])
  10. - O(N)
  11. Нельзя:
  12. for (int i=0; i < N; i++)
  13. for (int j=i+1; j < N; j++)
  14.  
  15.  
  16.  
  17.  
  18. перебор
  19. cin >> N
  20. int a[10000]
  21. for (int i=0; i < N; i++)
  22. cin >> a[i]
  23. # объявить константы
  24. for (int i=0; i < N; i++)
  25. for (int j=i+1; j < N; j++)
  26. a[i] a[j]
  27.  
  28.  
  29. # минимальная чётная сумма
  30. cin >> n
  31. m1 = 30001 # неч
  32. m0 = 30001 # чет
  33. min_s = 60001
  34. for (int i=0; i < N; i++) {
  35. cin >> x;
  36. if (x % 2 == 0) {
  37. if ((x + m0) < min_s)
  38. min_s = x + m0;
  39. if (x < m0)
  40. m0 = x;
  41. } else {
  42. if ((x + m1) < min_s)
  43. min_s = x + m1;
  44. if (x < m1)
  45. m1 = x;
  46. }
  47. }
  48. cout << min_s;
  49.  
  50.  
  51. # минимальное чётное произведение
  52.  
  53.  
  54. # минимальная сумма кратная 3
  55.  
  56.  
  57. cin >> n
  58. m2 = 30001
  59. m1 = 30001
  60. m0 = 30001
  61. min_s = 60001
  62. for (int i=0; i < N; i++) {
  63. cin >> x;
  64. if (x % 3 == 0) {
  65. if ((x + m0) < min_s)
  66. min_s = x + m0;
  67. if (x < m0)
  68. m0 = x;
  69. } else if (x % 3 == 1){
  70. if ((x + m2) < min_s)
  71. min_s = x + m1;
  72. if (x < m1)
  73. m1 = x;
  74. } else {
  75. if ((x + m1) < min_s)
  76. min_s = x + m1;
  77. if (x < m2)
  78. m1 = x;
  79. }
  80. cout << min_s;
  81.  
  82. # минимальная сумма кратная 123
  83. N = int(input())
  84. int m[123];
  85. for (int i=0; i < 123; i++)
  86. m[i] = 30001;
  87. min_s = 60001;
  88. for (int i=0; i < N; i++) {
  89. cin >> x;
  90. # x % 123 = 1 -> x[122]
  91. # x % 123 = 2 -> x[121]
  92. # x % 123 = 3 -> x[120]
  93. # ...
  94. # x % 123 = k -> x[123 - k]
  95. # x % 123 = 0 -> x[123 - 0] = x[123]% 123 = x[0]
  96.  
  97. if ((x + m[(123 - x % 123) % 123]) < min_s)
  98. min_s = x + m[(123 - x % 123) % 123];
  99.  
  100. if (x < m[x % 123])
  101. m[x % 123] = x;
  102. }
  103. cout << min_s;
  104.  
  105.  
  106. # разница в идексах не менее 5
  107.  
  108. m = 60001
  109. cin >> N
  110. int a[10000]
  111. for (int i=0; i < N; i++)
  112. cin >> a[i]
  113. for (int i=0; i < N; i++) {
  114. for (int j=i+1; j < N; j++) {
  115.  
  116. s = a[i] + a[j]
  117. if (s % 2 == 0 && s < min)
  118. m = s
  119. }
  120. }
  121. ciut << m;
  122.  
  123. # очередь + минимальная чётная сумма
  124. cin >> n
  125. m1 = 30001
  126. m0 = 30001
  127. min_s = 60001
  128. int q[4]
  129. for (int i=0; i < 4; i++)
  130. cin >> q[i];
  131. for (int i=4; i < N; i++){
  132. if (x % 2 == 0) {
  133. if ((x + m0) < min_s)
  134. min_s = x + m0;
  135. } else {
  136. if ((x + m1) < min_s)
  137. min_s = x + m1;
  138. }
  139. if (q[0] % 2 == 0 && q[0] < m0)
  140. m0 = q[0];
  141. if (q[0] % 2 == 1 && q[0] < m1)
  142. m1 = q[0];
  143. for (int j=0; i < 3; i++)
  144. q[i] = q[i + 1];
  145. q[3] = x;
  146. }
  147. cout << min_s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement