Submission #1356361

#TimeUsernameProblemLanguageResultExecution timeMemory
1356361silence25Pet (COCI26_pet)C++20
35 / 110
4 ms452 KiB
#include "bits/stdc++.h"

using namespace std;

#define ff first
#define ss second
#define pp pop_back
#define ll long long
#define pb push_back
#define pq priority_queue
#define ls(v) (int)v.size()
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define wr cout << "------------------------" << endl
#define tt debug

const int N = 20;
int a[N][N];
int ans;
bool vis[N][N];
int n,m;
void rec(int x,int y,int f,int cnt){
    if(cnt == 5){
        ans += 1;
        return;
    }
    if(f == 1){
        for(int i = 1;i<=n;++i){
            if(a[i][y] and !vis[i][y] and i != x){
                vis[i][y] = true;
                rec(i,y,f^1,cnt+1);
                vis[i][y] = false;
            }
        }
    }
    else{
        for(int i = 1;i<=m;++i){
            if(a[x][i] and !vis[x][i] and i != y){
                vis[x][i] = true;
                rec(x,i,f^1,cnt+1);
                vis[x][i] = false;
            }
        }
    }
}

signed main(){
#ifdef parad0x
    freopen("file.in","r",stdin);
#endif
    #define print(...) 42

    
    ios::sync_with_stdio(false);cin.tie(nullptr);
    cin >> n >> m;
    for(int i = 1;i<=n;++i){
    	for(int j = 1;j<=m;++j){
    		char c;
    		cin >> c;
    		a[i][j] = (c - '0');
    	}
    }
    for(int i = 1;i<=n;++i){
        for(int j = 1;j<=m;++j){
            if(a[i][j]){
                vis[i][j] = true;
                rec(i,j,1,1);
                rec(i,j,0,1);
                vis[i][j] = false;
            }
        }
    }
    cout << ans;
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...