From c3e7be1bb1a59220e61a72ee07aba46c0f0836ae Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Tue, 18 Aug 2020 22:06:17 +0100 Subject: - Added C++ solution by Ulrich Rieke. --- challenge-074/ulrich-rieke/cpp/ch-1.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 challenge-074/ulrich-rieke/cpp/ch-1.cpp diff --git a/challenge-074/ulrich-rieke/cpp/ch-1.cpp b/challenge-074/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..60014664c9 --- /dev/null +++ b/challenge-074/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,32 @@ +#include +#include +#include +#include +#include + +int main( ) { + int num = 0 ; + std::vector numbers ; + std::cout << "Enter numbers , -1 to end!\n" ; + std::cin >> num ; + while ( num != -1 ) { + numbers.push_back( num ) ; + std::cin >> num ; + } + std::set numSet ; + for ( int i : numbers ) + numSet.insert( i ) ; //unique numbers only + //create a vector to sort the numbers more easily + std::vector differentNums( numSet.begin( ) , numSet.end( ) ) ; + std::sort( differentNums.begin( ) , differentNums.end( ) , + [&numbers]( int a , int b ) { return std::count( numbers.begin( ), + numbers.end( ) , a ) > std::count( numbers.begin( ) , + numbers.end( ) , b ) ; } ) ; + int maxFound = std::count( numbers.begin( ) , numbers.end( ) , + *differentNums.begin( ) ) ; + if ( maxFound > floor( static_cast( numbers.size( ) ) / 2 ) ) + std::cout << '\n' << *differentNums.begin( ) << std::endl ; + else + std::cout << '\n' << -1 << std::endl ; + return 0 ; +} -- cgit