Advertisement
Guest User

Untitled

a guest
Feb 20th, 2018
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <string>
  4. #include <vector>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8. int x;
  9. //создаю буловскую функцию, проверяющую кратность числа на x
  10. bool isMulX(int val) {
  11. return val % x == 0;
  12. }
  13. //создаю буловскую функцию, проверяющую четность числа
  14. bool isOdd(int val) {
  15. return val % 2 != 0;
  16. }
  17. //вывожу полученный результат
  18. void printVector(vector<int> v) {
  19. for (int i = 0; i < v.size(); i++) {
  20. cout << v[i] << " ";
  21. }
  22. cout << endl;
  23. }
  24.  
  25. int main() {
  26. setlocale(LC_ALL, "Russian");
  27. //кол-во элементов
  28. int n;
  29. cin >> n;
  30. //создаю вектор размерности n
  31. vector<int> v = vector<int>(n);
  32. //считываю элементы
  33. for (int i = 0; i < n; i++) {
  34. cin >> v[i];
  35. }
  36. //удаляю элементы кратные x
  37. v.erase(remove_if(v.begin(), v.end(), isMulX), v.end());
  38. printVector(v);
  39. //нахожу максимальный элемент
  40. int max_el = *max_element(v.begin(), v.end());
  41. //вставляю после каждого из максимальных элементов новый элемент
  42. for (int i = 0; i < v.size(); i++) {
  43. if (v[i] == max_el) {
  44. v.insert(v.begin() + i + 1, max_el - 1);
  45. }
  46. }
  47. //вызываю функцию вывода
  48. printVector(v);
  49. //нахожу минимальный элемент
  50. int min_el = *min_element(v.begin(), v.end());
  51. //заменяю нечетные элементы минимальными
  52. replace_if(v.begin(), v.end(), isOdd, min_el);
  53. //вызываю функцию вывода
  54. printVector(v);
  55.  
  56. system("pause");
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement