結果
| 問題 | 
                            No.640 76本のトロンボーン
                             | 
                    
| コンテスト | |
| ユーザー | 
                             vjudge1
                         | 
                    
| 提出日時 | 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;
}
            
            
            
        
            
vjudge1