Untitled
unknown
plain_text
2 years ago
1.3 kB
8
Indexable
#include<iostream>
using namespace std;
int t,n, ans;
char mang[5][5];
bool check[5][5];
bool checkHang(int a, int b){
for(int i=b+1; i<n; i++){
if(mang[a][i]=='X')
break;
else{
if(check[a][i]==false)
return false;
}
}
for(int i=b-1; i>=0; i--){
if(mang[a][i]=='X')
break;
else{
if(check[a][i]==false)
return false;
}
}
return true;
}
bool checkCot(int a, int b){
for(int i=a+1; i<n; i++){
if(mang[i][b]=='X')
break;
else{
if(check[i][b]==false)
return false;
}
}
for(int i=a-1; i>=0; i--){
if(mang[i][b]=='X')
break;
else{
if(check[i][b]==false)
return false;
}
}
return true;
}
void bt(int dem){
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(mang[i][j]=='.' && checkHang(i,j) && checkCot(i,j) && check[i][j]){
check[i][j]=false;
bt(dem+1);
check[i][j]=true;
}
if(i==n-1 && j==n-1){
if(dem>ans)
ans=dem;
break;
}
}
}
}
int main(){
freopen("Text.txt", "r", stdin);
cin >> t;
for(int tc=1; tc<=t; tc++){
cin >> n;
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
check[i][j]=true;
cin >> mang[i][j];
}
}
ans=0;
bt(0);
cout << "Case #" << tc << endl;
cout << ans << endl;
}
return 0;
}Editor is loading...
Leave a Comment