-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path2975.cpp
More file actions
35 lines (30 loc) · 1.01 KB
/
2975.cpp
File metadata and controls
35 lines (30 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution {
public:
int maximizeSquareArea(int m, int n, vector<int>& hFences, vector<int>& vFences) {
long long mod = 1e9 + 7;
sort(hFences.begin(), hFences.end());
sort(vFences.begin(), vFences.end());
unordered_set<long long> st;
hFences.insert(hFences.begin(), 1);
hFences.push_back(m);
vFences.insert(vFences.begin(), 1);
vFences.push_back(n);
int mm = hFences.size();
for (int i = 0; i < mm - 1; ++i) {
for (int j = i + 1; j < mm; ++j) {
long long length = hFences[j] - hFences[i];
st.insert(length);
}
}
long long res = -1;
int nn = vFences.size();
for (int i = 0; i < nn - 1; ++i) {
for (int j = i + 1; j < nn; ++j) {
long long length = vFences[j] - vFences[i];
if (!st.count(length)) continue;
res = max(res, length * length);
}
}
return res % mod;
}
};