結果
問題 |
No.640 76本のトロンボーン
|
ユーザー |
![]() |
提出日時 | 2025-08-22 18:31:17 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,247 bytes |
コンパイル時間 | 3,161 ms |
コンパイル使用メモリ | 281,084 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-08-22 18:31:21 |
合計ジャッジ時間 | 3,771 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 13 WA * 2 |
ソースコード
#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(rclear1(1))ret++; up(1,n-1,i)if(cclear2(i))++ret; if(cclear(n))ret++; return ret; } ll calc4(){ ll ret=0; if(rclear2(1))ret++; up(2,n,i)if(cclear2(i))++ret; if(cclear(1))ret++; return ret; } ll calc5(){ ll ret=0; if(rclear1(n))ret++; up(1,n-1,i)if(cclear1(i))++ret; if(cclear(n))ret++; return ret; } ll calc6(){ ll ret=0; if(rclear2(n))ret++; up(2,n,i)if(cclear1(i))++ret; if(cclear(1))ret++; return ret; } ll calc7(){ ll ret=0; if(cclear1(1))ret++; up(1,n-1,i)if(rclear2(i))++ret; if(rclear(n))ret++; return ret; } ll calc8(){ ll ret=0; if(cclear2(1))ret++; up(2,n,i)if(rclear2(i))++ret; if(rclear(1))ret++; return ret; } ll calc9(){ ll ret=0; if(cclear1(n))ret++; up(1,n-1,i)if(rclear1(i))++ret; if(rclear(n))ret++; return ret; } ll calc10(){ ll ret=0; if(cclear2(n))ret++; up(2,n,i)if(rclear1(i))++ret; if(rclear(1))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(),calc7(),calc8(),calc9(),calc10()})<<"\n"; return 0; }