diff options
Diffstat (limited to 'other/max_area_cake.cpp')
-rw-r--r-- | other/max_area_cake.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/other/max_area_cake.cpp b/other/max_area_cake.cpp new file mode 100644 index 0000000..da1f745 --- /dev/null +++ b/other/max_area_cake.cpp @@ -0,0 +1,25 @@ +#include "leetcode.h" + +class Solution { +public: + int maxArea(int h, int w, vector<int> &horizontalCuts, + vector<int> &verticalCuts) { + sort(horizontalCuts.begin(), horizontalCuts.end()); + sort(verticalCuts.begin(), verticalCuts.end()); + int maxH = max(horizontalCuts[0], h - horizontalCuts.back()); + int maxV = max(verticalCuts[0], w - verticalCuts.back()); + for (int i = 1; i < horizontalCuts.size(); i++) + maxH = max(maxH, horizontalCuts[i] - horizontalCuts[i - 1]); + for (int i = 1; i < verticalCuts.size(); i++) + maxV = max(maxV, verticalCuts[i] - verticalCuts[i - 1]); + return ((long)maxH * maxV % 1000000007); + } +}; + +int main() { + Solution obj; + int h = 5, w = 4; + vector<int> horizontalCuts = {1, 2, 4}; + vector<int> verticalCuts = {1, 3}; + cout << obj.maxArea(h, w, horizontalCuts, verticalCuts); +} |