fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator>
  4. #include <algorithm>
  5.  
  6. int main()
  7. {
  8. setlocale(LC_ALL, "Russian");
  9.  
  10. std::vector<int> v;
  11.  
  12. std::cout << "Введите последовательность чисел: ";
  13. std::istream_iterator<int> iit( std::cin );
  14. std::istream_iterator<int> eos;
  15. std::copy( iit, eos, std::back_inserter(v) );
  16.  
  17. std::ostream_iterator<int> oit( std::cout, " " );
  18.  
  19. // Сортируем
  20. std::sort( v.begin(), v.end() );
  21.  
  22. // Удаляем не парные элементы
  23. int* prev = nullptr;
  24. auto it = v.begin();
  25. for( auto& e : v )
  26. {
  27. if( prev )
  28. {
  29. if( *prev == e ) *it++ = e;
  30. }
  31. prev = &e;
  32. }
  33.  
  34. // Удаляем лишние пары
  35. it = std::unique( v.begin(), it );
  36. v.resize( std::distance( v.begin(), it ) );
  37.  
  38. // Находим максимум
  39. auto maxit = std::max_element( v.begin(), v.end() );
  40. if( maxit == v.end() )
  41. {
  42. std::cout << "Нет одинаковых элементов";
  43. }
  44. else
  45. {
  46. std::cout << "Максимальный повторяющийся элемент равен " << *maxit;
  47. }
  48.  
  49. std::cout << std::endl;
  50.  
  51. return 0;
  52. }
  53.  
Success #stdin #stdout 0s 4536KB
stdin
1 2 10 3 4 3 5 2 2 6 10
stdout
Введите последовательность чисел: Максимальный повторяющийся элемент равен 10