QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#632836 | #7733. Cool, It’s Yesterday Four Times More | jr_zlw# | WA | 1ms | 3844kb | C++17 | 1.5kb | 2024-10-12 14:02:14 | 2024-10-12 14:02:17 |
Judging History
answer
#include<bits/stdc++.h>
#define rep(a,b,c) for(int c(a);c<=(b);++c)
using namespace std;
inline int read() {
int res=0;char ch=getchar();while(ch<'0'||ch>'9')ch=getchar();
while(ch<='9'&&ch>='0')res=res*10+(ch^48),ch=getchar();return res;
}
inline bool rd() {
char ch=getchar();while(ch!='.'&&ch!='O')ch=getchar();
return ch=='.';
}
const int N=1010,dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int n,m,I,J;bool a[N][N],vis[N][N];
typedef pair<int,int> pii;
map<pii,int> t;
inline bool check(int x,int y) {
if(x<1||y<1||x>n||y>m)return false;
return a[x][y];
}
inline void dfs0(int x,int y) {
if(!check(x,y)||vis[x][y])return;
++t[{x-I,y-J}];vis[x][y]=true;
rep(0,3,i) {
int tx=x+dx[i],ty=y+dy[i];
dfs0(tx,ty);
}
}
bool flag;
inline void dfs1(int x,int y) {
if(!check(x,y)||vis[x][y])return;
if(t[{x-I,y-J}]==1) {
flag=true;
return;
}
vis[x][y]=true;
rep(0,3,i) {
int tx=x+dx[i],ty=y+dy[i];
dfs1(tx,ty);if(flag)break;
}
}
inline void Solve() {
n=read();m=read();
rep(1,n,i)rep(1,m,j)a[i][j]=rd();
t.clear();
rep(1,n,i)rep(1,m,j)if(a[i][j]) {
rep(1,n,ii)rep(1,m,jj)vis[ii][jj]=false;
I=i;J=j;dfs0(i,j);
}
int ans=0;
rep(1,n,i)rep(1,m,j)if(a[i][j]) {
rep(1,n,ii)rep(1,m,jj)vis[ii][jj]=false;
I=i;J=j;flag=false;dfs1(i,j);if(flag)++ans;
}
printf("%d\n",ans);
}
int main() {
int T=read();
while(T--)Solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3792kb
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
Wrong Answer
time: 1ms
memory: 3844kb
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 3 6 4 4 0 5 2 2 0 1 5 4 4 2 0 0 4 3 3 1 2 1 0 3 2 2 2 6 2 0 4 2 2 2 0 4 5 6 3 3 2 3 4 2 1 0 3 3 4 4 2 2 0 7 6 2 7 5 3 2 5 2 1 2 1 2 0 0 2 5 1 4 4 4 1 5 2 2 2 4 5 2 1 0 1 5 3 4 4 0 2 2 1 0 0 2 2 1 4 2 6 3 0 3 5 2 4 1 2 3 2 0 2 8 2 2 4 0 2 4 4 2 1 2 2 0 5 0 9 4 3 2 5 0 6 2 3 1 1 ...
result:
wrong answer 12th lines differ - expected: '7', found: '3'