結果

問題 No.640 76本のトロンボーン
ユーザー vjudge1
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

#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;
}
0