#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;
hadone = true;
firstrow = 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;
}
}
}
}
}
int occurance = 0;
bool firstocc = false;
for(int i = 0; i<n;i++){
int freq = 0;
if(firstocc == false){
for(int j = 0;j<m;j++){
if(matrix[i][j] == '1'){
firstocc = true;
freq++;
}
}
occurance = freq;
}
else{
for(int j = 0;j<m;j++){
if(matrix[i][j] == '1')freq ++;
}
if(freq != 0 && freq != occurance) 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 | 2ms | 356 KiB | ||||
| 2 | Accepted | 2ms | 356 KiB | ||||
| subtask2 | 50/50 | ||||||
| 3 | Accepted | 8ms | 552 KiB | ||||
| 4 | Accepted | 8ms | 392 KiB | ||||
| 5 | Accepted | 10ms | 496 KiB | ||||
| 6 | Accepted | 10ms | 396 KiB | ||||
| 7 | Accepted | 4ms | 376 KiB | ||||
| subtask3 | 50/50 | ||||||
| 8 | Accepted | 8ms | 500 KiB | ||||
| 9 | Accepted | 10ms | 356 KiB | ||||
| 10 | Accepted | 32ms | 632 KiB | ||||
| 11 | Accepted | 61ms | 356 KiB | ||||
| 12 | Accepted | 68ms | 492 KiB | ||||
| 13 | Accepted | 37ms | 756 KiB | ||||
| 14 | Accepted | 50ms | 812 KiB | ||||
| 15 | Accepted | 87ms | 988 KiB | ||||
| 16 | Accepted | 54ms | 932 KiB | ||||
| 17 | Accepted | 4ms | 356 KiB | ||||