Submission #864628

#TimeUsernameProblemLanguageResultExecution timeMemory
864628vnm06Duathlon (APIO18_duathlon)C++14
5 / 100
1041 ms804 KiB
#include<bits/stdc++.h>
#pragma GCC optimize
#define endl '\n'

using namespace std;

long long n, m, en;
vector<int> gr[55];

long long ans=0;
bitset<55> post;
bitset<55> vzm, used;

bool dost(int i, int j)
{
    used[i]=1;
    if(i==j) return 1;
    int brs=gr[i].size();
    for(int t=0; t<brs; t++)
    {
        int nv=gr[i][t];
        if(used[nv]) continue;
        if(dost(nv, j)) return 1;
    }
    return 0;
}

void dfs(int v)
{
    if(v==en || vzm[v]==1)
    {
        vzm|=post;
        return;
    }
    post[v]=1;
    int brs=gr[v].size();
    for(int i=0; i<brs; i++)
    {
        int nv=gr[v][i];
        if(!post[nv]) dfs(nv); 
    }
    post[v]=0;
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin>>n>>m;
    for(int i=0; i<m; i++)
    {
        int v, u;
        cin>>v>>u;
        gr[v].push_back(u);
        gr[u].push_back(v);
    }
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=n; j++)
        {
            if(i==j) continue;
            used.reset();
            if(!dost(i, j)) continue;
            vzm.reset();
            en=j;
            dfs(i);
            vzm[i]=0;
            vzm[j]=0;
            ans+=vzm.count();
            vzm.reset();
            post.reset();
        }
    }
    cout<<ans<<endl;
    return 0;
}
/**
8 7
1 2
2 3
2 4
3 5
5 6
6 7
6 8

4 4
1 2
2 4
2 3
3 4
*/

Compilation message (stderr)

count_triplets.cpp:2:9: warning: '#pragma GCC optimize' is not a string or number [-Wpragmas]
    2 | #pragma GCC optimize
      |         ^~~
#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...