結果
問題 | No.640 76本のトロンボーン |
ユーザー |
![]() |
提出日時 | 2017-10-10 21:29:38 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 5 ms / 2,000 ms |
コード長 | 1,264 bytes |
コンパイル時間 | 654 ms |
コンパイル使用メモリ | 68,716 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-20 17:20:36 |
合計ジャッジ時間 | 1,262 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 15 |
ソースコード
#include <string>#include <iostream>#include <algorithm>using namespace std;int N; string s[79], t[79];int solve() {int ret = 0;for (int i = 0; i < N; i++) {for (int j = -1; j < 2; j++) {int res = 0;bool f = true;if (j != -1) {for (int k = 0; k < N - 1; k++) {if (s[i][j + k] == '#') f = false;}res++;}if (f) {for (int k = 0; k < N; k++) t[k] = s[k];if(j != -1) for (int k = 0; k < N - 1; k++) t[i][j + k] = '#';for (int k = 0; k < N; k++) {for (int l = 0; l < 2; l++) {bool fa = true;for (int m = 0; m < N - 1; m++) {if (t[l + m][k] == '#') fa = false;}if (fa) {res++;break;}}}ret = max(ret, res);}}}return ret;}int main() {cin >> N;for (int i = 0; i < N; i++) cin >> s[i];int ret = 0; bool fr = true;for (int i = 0; i < N; i++) {for (int j = 0; j < N; j++) {if ((i == 0 || i == N - 1 || j == 0 || j == N - 1) && s[i][j] == '#') fr = false;}}if (fr) ret = 4;ret = max(ret, solve());for (int i = 0; i < N; i++) t[i] = s[i];for (int i = 0; i < N; i++) {for (int j = 0; j < N; j++) {s[i][j] = t[j][i];}}ret = max(ret, solve());cout << ret << endl;return 0;}