比赛 |
国庆欢乐赛3 |
评测结果 |
EEEEE |
题目名称 |
不重叠正方形 |
最终得分 |
0 |
用户昵称 |
对立猫猫对立 |
运行时间 |
1.234 s |
代码语言 |
C++ |
内存使用 |
9.52 MiB |
提交时间 |
2025-10-05 10:43:12 |
显示代码纯文本
#include <bits/stdc++.h>
#define int long long
#define For(i, a, b) for(int i = a; i <= b; i++)
using namespace std;
int n, m;
int a[1005][1005];
struct Node {
int sx, sy;
int sum;
bool operator<(Node a) {
return sum >= a.sum;
}
};
vector<Node> v;
int ans = 0;
signed main() {
freopen("zfx.in", "r", stdin);
freopen("zfx.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n >> m;
For(i, 1, n) {
For(j, 1, n) {
cin >> a[i][j];
a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
}
}
sort(v.begin(), v.end());
For(i, 0, v.size() - 1) {
For(j, i, v.size() - 1) {
For(k, j, v.size() - 1) {
if( (abs(v[i].sx - v[j].sx) >= 3 || abs(v[i].sy - v[j].sy) >= 3) &&
(abs(v[k].sx - v[j].sx) >= 3 || abs(v[k].sy - v[j].sy) >= 3) &&
(abs(v[i].sx - v[k].sx) >= 3 || abs(v[i].sy - v[k].sy) >= 3)) ans = max(ans, v[i].sum + v[j].sum + v[k].sum);
}
}
}
cout << ans << '\n';
return 0;
}