Submission #59309

#TimeUsernameProblemLanguageResultExecution timeMemory
59309MatheusLealV철인 이종 경기 (APIO18_duathlon)C++17
5 / 100
551 ms13784 KiB
#include <bits/stdc++.h>
#define N 100050
using namespace std;
typedef long long ll;
ll n, m, c, ans, ok[N];
   
vector<ll> grafo[N];
 
ll ini, mid, fim, oki = 0, dp[15][2000];
 
void dfs(ll x, ll mask)
{
    if(dp[x][mask]) return;
 
    dp[x][mask] = 1;
 
    if(x == fim)
    {
        if( (mask & (1<<mid)) && (mask & (1<<ini))) oki = 1;
 
        return;
    }
 
    for(auto v: grafo[x])
    {
        if(mask & (1<<v)) continue;
 
        dfs(v, mask | (1<<v));
    }
}
  
ll sz[100050], root;
  
ll B, C;
  
int main()
{
    ios::sync_with_stdio(false); cin.tie(0);
  
    cin>>n>>m;    
  
    for(ll i = 1, a, b; i <= m; i++)
    {
        cin>>a>>b;
 
        a --, b--;
  
        grafo[a].push_back(b);
  
        grafo[b].push_back(a);
    }
   
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            for(int z = 0; z < n; z++)
            {
                ini = i, mid = j, fim = z;
 
                if(i == j || i == z || j == z) continue;
 
                oki = 0;
 
                memset(dp, 0, sizeof dp);
 
                dfs(i, 1<<i);
 
                if(oki) ans ++;
            }
        }
    }
 
    cout<<ans<<"\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...