結果
| 問題 |
No.2509 Beam Shateki
|
| コンテスト | |
| ユーザー |
ripity
|
| 提出日時 | 2023-10-20 21:52:25 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 992 bytes |
| コンパイル時間 | 2,346 ms |
| コンパイル使用メモリ | 213,164 KB |
| 最終ジャッジ日時 | 2025-02-17 09:10:02 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | TLE * 1 -- * 2 |
| other | -- * 61 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
int H, W;
cin >> H >> W;
vector<int> x = {1, 0, 1, 1};
vector<int> y = {0, 1, 1, -1};
vector<map<int, long long>> s(4);
vector<vector<long long>> A(H, vector<long long>(W));
for( int i = 0; i < H; i++ ) {
for( int j = 0; j < W; j++ ) {
cin >> A[i][j];
for( int k = 0; k < 4; k++ ) {
s[k][x[k]*i+y[k]*j] += A[i][j];
}
}
}
long long ans = 0;
for( int i = -1000; i <= 1000; i++ ) {
for( int j = -1000; j <= 1000; j++ ) {
for( int k = 0; k < 4; k++ ) {
for( int l = 0; l < 4; l++ ) {
if( k == l ) continue;
if( 0 <= i && i < H && 0 <= j && j < W ) ans = max(ans, s[k][x[k]*i+y[k]*j]+s[l][x[l]*i+y[l]*j]-A[i][j]);
else ans = max(ans, s[k][x[k]*i+y[k]*j]+s[l][x[l]*i+y[l]*j]);
}
}
}
}
for( int i = 0; i < 4; i++ ) {
vector<long long> v = {0};
for( auto [j, k] : s[i] ) v.push_back(k);
sort(v.rbegin(), v.rend());
ans = max(ans, v[0]+v[1]);
}
cout << ans << endl;
}
ripity