#include <bits/stdc++.h>
using namespace std;
void run_case()
{
int n,m;
cin>>n>>m;
vector <string> matrix;
bool valid = true;
bool firstrow = false;
bool hadone = false;
for(int i = 0; i< n ;i++){
string s;
cin>>s;
matrix.push_back(s);
bool f1 = false;
if(valid == true){
if(firstrow == false){
for(int j = 0;j<m;j++){
if(s[j] == '1' && f1 == false){
f1 = true;
firstrow = true;
hadone = true;
}
else if(s[j] == '1' && f1 == true){
if(s[j-1] != '1') valid = false;
}
}
}
else{
for(int j = 0;j<m;j++){
if(s[j] == '1' && f1 == false){
f1 = true;
if(matrix[i-1][j] != '1') valid = false;
}
else if(s[j] == '1' && f1 == true){
if(s[j-1] != '1' || matrix[i-1][j] != '1') valid = false;
}
}
}
}
}
if(valid == false || hadone == false) cout<<0<<endl;
else cout<<1<<endl;
}
int main()
{
int t;
cin>>t;
while(t-->0){
run_case();
}
return 0;
}| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 3ms | 356 KiB | ||||
| 2 | Accepted | 2ms | 360 KiB | ||||
| subtask2 | 0/50 | ||||||
| 3 | Wrong answer | 8ms | 404 KiB | ||||
| 4 | Wrong answer | 8ms | 300 KiB | ||||
| 5 | Wrong answer | 10ms | 384 KiB | ||||
| 6 | Wrong answer | 10ms | 356 KiB | ||||
| 7 | Wrong answer | 4ms | 356 KiB | ||||
| subtask3 | 0/50 | ||||||
| 8 | Wrong answer | 7ms | 256 KiB | ||||
| 9 | Wrong answer | 10ms | 484 KiB | ||||
| 10 | Wrong answer | 28ms | 384 KiB | ||||
| 11 | Accepted | 54ms | 500 KiB | ||||
| 12 | Accepted | 59ms | 484 KiB | ||||
| 13 | Accepted | 32ms | 612 KiB | ||||
| 14 | Accepted | 43ms | 788 KiB | ||||
| 15 | Accepted | 75ms | 996 KiB | ||||
| 16 | Accepted | 46ms | 1060 KiB | ||||
| 17 | Wrong answer | 4ms | 228 KiB | ||||