aboutsummaryrefslogtreecommitdiff
path: root/challenge-100/ulrich-rieke/cpp/ch-2.cpp
diff options
context:
space:
mode:
authorboblied <boblied@gmail.com>2021-02-17 10:02:17 -0600
committerboblied <boblied@gmail.com>2021-02-17 10:02:17 -0600
commit777af015ef658a2336ec1d5d032a59e400245a26 (patch)
treea725e5fad82da4efe63e7a484e65dcce3ca7a7b9 /challenge-100/ulrich-rieke/cpp/ch-2.cpp
parent2574e738c3ac98bcf06b41cd1a5a4f96d444da17 (diff)
parent5510732008024da6d7c668a778f397245640d554 (diff)
downloadperlweeklychallenge-club-777af015ef658a2336ec1d5d032a59e400245a26.tar.gz
perlweeklychallenge-club-777af015ef658a2336ec1d5d032a59e400245a26.tar.bz2
perlweeklychallenge-club-777af015ef658a2336ec1d5d032a59e400245a26.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-100/ulrich-rieke/cpp/ch-2.cpp')
-rw-r--r--challenge-100/ulrich-rieke/cpp/ch-2.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/challenge-100/ulrich-rieke/cpp/ch-2.cpp b/challenge-100/ulrich-rieke/cpp/ch-2.cpp
new file mode 100644
index 0000000000..a3f847fd63
--- /dev/null
+++ b/challenge-100/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,49 @@
+
+#include <iostream>
+#include <vector>
+
+std::vector<int> enterRow( ) {
+ std::cout << "Enter a row , 0 to end the row!\n" ;
+ std::vector<int> row ;
+ int number ;
+ std::cin >> number ;
+ while ( number != 0 ) {
+ row.push_back( number ) ;
+ std::cin >> number ;
+ }
+ return row ;
+}
+
+std::vector<std::vector<int>> enterArray( ) {
+ std::cout << "How many lines do you want to enter?\n" ;
+ int number ;
+ std::cin >> number ;
+ std::vector<int> row ;
+ std::vector<std::vector<int>> array ;
+ for ( int i = 0 ; i < number ; i++ ) {
+ std::cout << "Next line!\n" ;
+ row = enterRow( ) ;
+ array.push_back( row ) ;
+ }
+ return array ;
+}
+
+int main( ) {
+ int currentIndex = 0 ;
+ int sum = 0 ;
+ std::vector<std::vector<int>> array = enterArray( ) ;
+ int len = array.size( ) ;
+ for ( int i = 0 ; i < len ; i++ ) {
+ std::vector<int> row { *(array.begin( ) + i) } ;
+ if ( row.size( ) == 1 )
+ sum += *(row.begin( ) ) ;
+ else {
+ sum += std::min( *(row.begin() + currentIndex) , *(row.begin( ) +
+ currentIndex + 1 ) ) ;
+ if ( row[ currentIndex + 1 ] < row[ currentIndex ] )
+ currentIndex++ ;
+ }
+ }
+ std::cout << sum << std::endl ;
+ return 0 ;
+}