QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#569218 | #7733. Cool, It’s Yesterday Four Times More | zhangjiahao | RE | 2ms | 7536kb | C++14 | 1.3kb | 2024-09-16 21:20:00 | 2024-09-16 21:20:00 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int a[1005],f[1005][1005],n,m;
int pos(int x,int y) {
return x*m+y-m;
}
void work() {
memset(a,0,sizeof(a));
memset(f,0,sizeof(f));
cin>>n>>m;
char c;
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
cin>>c;
if(c=='.') a[pos(i,j)]=1;
}
}
queue<pair<int,int> > q;
for(int i=1;i<=n*m;i++) {
if(!a[i]) continue;
for(int j=1;j<=n*m;j++) {
if(!a[j]) continue;
if(i>m&&a[i-m]&&(j<=m||!a[j-m])||i<=(n-1)*m&&a[i+m]&&(j>(n-1)*m||!a[j+m])||i%m!=1&&a[i-1]&&(j%m==1||!a[j-1])||i%m!=0&&a[i+1]&&(j%m==0||!a[j+1])) q.push(make_pair(i,j));
}
}
while(!q.empty()) {
int x=q.front().first,y=q.front().second;
q.pop();
if(f[x][y]) continue;
f[x][y]=1;
if(x>m&&y>m) q.push(make_pair(x-m,y-m));
if(x<=(n-1)*m&&y<=(n-1)*m) q.push(make_pair(x+m,y+m));
if(x%m!=1&&y%m!=1) q.push(make_pair(x-1,y-1));
if(x%m!=0&&y%m!=0) q.push(make_pair(x+1,y+1));
}
int ans=0;
for(int i=1;i<=n*m;i++) {
if(!a[i]) continue;
int flag=1;
for(int j=1;j<=n*m;j++) {
if(!a[j]||i==j) continue;
flag&=f[i][j];
}
ans+=flag;
}
cout<<ans<<"\n";
}
int main() {
int t;
cin>>t;
while(t--) work();
return 0;
}
/*
4
2 5
.OO..
O..O.
1 3
O.O
1 3
.O.
2 3
OOO
OOO
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 7536kb
input:
4 2 5 .OO.. O..O. 1 3 O.O 1 3 .O. 2 3 OOO OOO
output:
3 1 0 0
result:
ok 4 lines
Test #2:
score: -100
Runtime Error
input:
200 2 4 OOO. OO.. 2 3 OOO .O. 3 3 O.O OOO OO. 4 1 . . O O 1 2 .O 1 1 . 2 5 .OO.. .O.O. 2 1 O O 1 1 O 1 3 .OO 5 1 O O . O . 5 2 O. .. O. .O .. 5 3 ... ... .OO ..O OOO 3 5 ..O.O .O.O. .OO.O 5 2 .O OO O. O. .. 2 1 O O 3 5 .O.OO O...O ..OO. 1 5 ..... 5 1 O . O . . 5 3 OOO OO. .OO OO. O.O 2 1 O . 5 2 O. ...
output:
3 0 0 2 1 1 3 0 0 1 0 7 9 4 4 0 6 5 2 0 1 6 6 8 2 0 0 5 3 3 1 4 1 0 7 5 2 3 7 3 0 6 2 2 2 0 4 6 6 3 3 2 3 5 2 1 0 3 3 4 4 2 2 0 7 6 4 11 5 3 2 5 2 1 2 1 4 0 0 2 5 1 4 6 6 1 6 2 2 3 4 5 2 1 0 1 9 3 4 11 0