結果
| 問題 | No.5024 魔法少女うなと宝集め |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-05-02 17:16:58 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 2,089 bytes |
| 記録 | |
| コンパイル時間 | 2,253 ms |
| コンパイル使用メモリ | 332,604 KB |
| 実行使用メモリ | 6,400 KB |
| スコア | 1,630,724 |
| 最終ジャッジ日時 | 2026-05-02 17:17:03 |
| 合計ジャッジ時間 | 3,987 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
| 純コード判定しない問題か言語 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 50 |
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:46:22: warning: 'si1' may be used uninitialized [-Wmaybe-uninitialized]
46 | cout << (si2 - si1) * (sj2 - sj1) << endl;
| ~~~~~^~~~~~
main.cpp:24:13: note: 'si1' was declared here
24 | int si1, si2, sj1, sj2;
| ^~~
main.cpp:46:22: warning: 'si2' may be used uninitialized [-Wmaybe-uninitialized]
46 | cout << (si2 - si1) * (sj2 - sj1) << endl;
| ~~~~~^~~~~~
main.cpp:24:18: note: 'si2' was declared here
24 | int si1, si2, sj1, sj2;
| ^~~
main.cpp:46:36: warning: 'sj1' may be used uninitialized [-Wmaybe-uninitialized]
46 | cout << (si2 - si1) * (sj2 - sj1) << endl;
| ~~~~~^~~~~~
main.cpp:24:23: note: 'sj1' was declared here
24 | int si1, si2, sj1, sj2;
| ^~~
main.cpp:46:36: warning: 'sj2' may be used uninitialized [-Wmaybe-uninitialized]
46 | cout << (si2 - si1) * (sj2 - sj1) << endl;
| ~~~~~^~~~~~
main.cpp:24:28: note: 'sj2' was declared here
24 | int si1, si2, sj1, sj2;
| ^~~
ソースコード
#include <bits/stdc++.h>
using namespace std;
int a[21][21] = {};
int s[22][22] = {};
int sum(int x1, int y1, int x2, int y2) { return s[x2][y2] - s[x1][y2] - s[x2][y1] + s[x1][y1]; }
int main() {
int n, t;
cin >> n >> t;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
s[i + 1][j + 1] = s[i + 1][j] + s[i][j + 1] - s[i][j] + a[i][j];
}
}
int si1, si2, sj1, sj2;
int m = 0;
for (int i1 = 0; i1 < n; i1++) {
for (int i2 = i1 + 1; i2 <= n; i2++) {
for (int j1 = 0; j1 < n; j1++) {
for (int j2 = j1 + 1; j2 <= n; j2++) {
if ((i2 - i1) * (j2 - j1) <= t) {
int sum_ = sum(i1, j1, i2, j2);
if (sum_ > m) {
m = sum_;
si1 = i1;
si2 = i2;
sj1 = j1;
sj2 = j2;
}
}
}
}
}
}
cout << (si2 - si1) * (sj2 - sj1) << endl;
for (int i = si1; i < si2; i++) {
if ((si1 - i) % 2 == 0) {
for (int j = sj1; j < sj2; j++) {
cout << i << ' ' << j << endl;
}
} else {
for (int j = sj2 - 1; j >= sj1; j--) {
cout << i << ' ' << j << endl;
}
}
}
}