Submission #252132

#TimeUsernameProblemLanguageResultExecution timeMemory
252132Mlxa철인 이종 경기 (APIO18_duathlon)C++14
10 / 100
20 ms768 KiB
#include <bits/stdc++.h>
using ll = long long;
#define int ll
#define x first
#define y second
#define all(x) x.begin(), x.end()
#define mp make_pair
#define mt make_tuple
using namespace std;

const int N = 3e3;
int n;
int m;
vector<int> g[N];
int used[N];
int timer = 0;
int answer = 0;

void dfs(int v, int d) {
    if (d > 1) {
        answer += d - 1;
    }
    used[v] = timer;
    for (int u : g[v]) {
        if (used[u] < timer) {
            dfs(u, d + 1);
        }
    }
}

signed main() {
#ifdef LC
    assert(freopen("input.txt", "r", stdin));
#endif // LC
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> m;
    for (int v, u, i = 0; i < m; ++i) {
        cin >> v >> u;
        --v;
        --u;
        g[v].push_back(u);
        g[u].push_back(v);
    }
    for (int i = 0; i < n; ++i) {
        ++timer;
        dfs(i, 0);
    }
    cout << answer << "\n";
    return 0;
}

#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...