aboutsummaryrefslogtreecommitdiff
path: root/challenge-075/ash/cpp/ch-2.cpp
diff options
context:
space:
mode:
authorboblied <boblied@gmail.com>2020-09-07 07:23:29 -0500
committerboblied <boblied@gmail.com>2020-09-07 07:23:29 -0500
commitfcf5411c4bd218cb8f01220cd7b4d61337ec2365 (patch)
tree9cddb1ef6e41c683060262f95b1edb105aeffb35 /challenge-075/ash/cpp/ch-2.cpp
parent1609503c7b0dc62dbd8481046db444f342f3288b (diff)
parent446ee93bf52a600ad0e0601e0a768249799b1c32 (diff)
downloadperlweeklychallenge-club-fcf5411c4bd218cb8f01220cd7b4d61337ec2365.tar.gz
perlweeklychallenge-club-fcf5411c4bd218cb8f01220cd7b4d61337ec2365.tar.bz2
perlweeklychallenge-club-fcf5411c4bd218cb8f01220cd7b4d61337ec2365.zip
Prepare for challenge 076
Diffstat (limited to 'challenge-075/ash/cpp/ch-2.cpp')
-rw-r--r--challenge-075/ash/cpp/ch-2.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/challenge-075/ash/cpp/ch-2.cpp b/challenge-075/ash/cpp/ch-2.cpp
new file mode 100644
index 0000000000..130f41839e
--- /dev/null
+++ b/challenge-075/ash/cpp/ch-2.cpp
@@ -0,0 +1,41 @@
+/*
+ Task 2 from https://perlweeklychallenge.org/blog/perl-weekly-challenge-075/
+
+ Comments: https://andrewshitov.com/2020/08/29/largest-rectangle-histogram-the-raku-challenge-week-75-task-2/
+
+ How to compile:
+ $ g++ --std=c++17 ch-2.cpp
+*/
+
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+int main() {
+ vector<int> hist = {3, 2, 3, 5, 7, 5};
+
+ int max_area = 0;
+ int max_start;
+ int max_end;
+
+ for (auto start = 0; start <= hist.size(); start++) {
+ for (auto end = start + 1; end < hist.size(); end++) {
+ auto min_height = INT_MAX;
+ for (auto i = start; i != end; i++) {
+ if (hist[i] < min_height) min_height = hist[i];
+ }
+
+ auto area = min_height * (1 + end - start);
+
+ if (area > max_area) {
+ max_area = area;
+ max_start = start;
+ max_end = end;
+ }
+ }
+ }
+
+ cout << "The biggest rectangle is between the columns " << max_start << " and " << max_end
+ << " and its area is " << max_area << ".\n";
+}