結果
| 問題 |
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