結果
問題 |
No.640 76本のトロンボーン
|
ユーザー |
![]() |
提出日時 | 2025-08-22 18:26:06 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,593 bytes |
コンパイル時間 | 2,979 ms |
コンパイル使用メモリ | 278,648 KB |
実行使用メモリ | 7,720 KB |
最終ジャッジ日時 | 2025-08-22 18:26:10 |
合計ジャッジ時間 | 4,035 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 12 WA * 3 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define up(l,r,i) for(int i=(l);i<=(r);i++) #define down(r,l,i) for(int i=(r);i>=(l);i--) #define all(x) x.begin(),x.end() ll n; char grid[88][88]; bool rclear1(int x){ bool flag=1; up(1,n-1,i){ if(grid[x][i]=='#')flag=0; } return flag; } bool rclear2(int x){ bool flag=1; up(2,n,i){ if(grid[x][i]=='#')flag=0; } return flag; } bool rclear(int x){ return rclear1(x) || rclear2(x); } bool cclear1(int y){ bool flag=1; up(1,n-1,i){ if(grid[i][y]=='#')flag=0; } return flag; } bool cclear2(int y){ bool flag=1; up(2,n,i){ if(grid[i][y]=='#')flag=0; } return flag; } bool cclear(int y){ return cclear1(y) || cclear2(y); } ll calc1(){ ll ret=0; up(1,n,i)if(rclear(i))ret++; return ret; } ll calc2(){ ll ret=0; up(1,n,i)if(cclear(i))ret++; return ret; } ll calc3(){ ll ret=0; if(rclear(1))ret++; up(1,n,i)if(cclear2(i))++ret; return ret; } ll calc4(){ ll ret=0; if(rclear(n))ret++; up(1,n,i)if(cclear1(i))++ret; return ret; } ll calc5(){ ll ret=0; if(cclear(1))ret++; up(1,n,i)if(rclear2(i))++ret; return ret; } ll calc6(){ ll ret=0; if(cclear(n))ret++; up(1,n,i)if(rclear1(i))++ret; return ret; } int main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cin>>n; up(1,n,i) up(1,n,j) cin>>grid[i][j]; cout<<max({calc1(), calc2(), calc3(), calc4(), calc5(), calc6()})<<"\n"; return 0; }