제출 #1160977

#제출 시각아이디문제언어결과실행 시간메모리
1160977crafticat철인 이종 경기 (APIO18_duathlon)C++20
0 / 100
49 ms10820 KiB
#include <bits/stdc++.h>

using namespace std;

#define F0R(i, n) for (int i = 0; i < n; i++)
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define ROF(i, a, b) for (int i = (a); i >= (b); i--)
#define REP(i, n) for (int i = (n); i >= 0; i--)

template<typename T>
using V = vector<T>;
using vi = vector<int>;
using ll = long long;

V<vi> g;
vi vis;

int count(int x)
{
    vis[x] = 1;
    int ans = 1;
    for (auto y : g[x])
    {
        if (vis[y]) continue;
        ans += count(y);
    }
    return ans;
}

int main()
{

    int n, m; cin >> n >> m;
    g.resize(n + 1);
    vis.resize(n + 1);

    F0R(i, m)
    {
        int a, b; cin >> a >> b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    ll ans = 0;

    FOR(i, 1, n + 1)
    {
        if (!vis[i])
        {
            ll x = count(i);
            if (x > 2) ans += x * (x - 1) * (x - 2) / 3;
        }
    }
    cout << ans << endl;
}
#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...