답안 #217978

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
217978 2020-03-31T11:32:07 Z Vimmer 철인 이종 경기 (APIO18_duathlon) C++14
23 / 100
1000 ms 1048580 KB
#include <bits/stdc++.h>

#define F first
#define S second
#define sz(x) int(x.size())
#define pb push_back
#define N 100005
#define M ll(998244353)

using namespace std;

typedef long double ld;
typedef long long ll;
typedef short int si;


vector <int> g[N];

bool mk[N], mkr[N];

int i, j, n, m;

ll anser, siz[N], kol;

void calc(int v, int p)
{
    if (p != -1) {siz[p] -= siz[v]; siz[v] += siz[p];}

    for (auto it : g[v]) anser += (siz[v] - 1 - siz[it]) * siz[it];

    for (auto it : g[v]) {if (p == it) continue; calc(it, v);}

    if (p != -1) {siz[v] -= siz[p]; siz[p] += siz[v];}
}

void dfs(int v, int p)
{
    mkr[v] = 1;

    siz[v] = 0;

    for (auto it : g[v])
    {
        if (it == p) continue;

        dfs(it, v);

        siz[v] += siz[it];
    }

    siz[v]++;

    if (i == v) calc(v, -1);
}


bool dostig(int v, int to)
{
    if (mk[v]) return 0;

    if (v == to) return 1;

    mk[v] = 1;

    bool f = 0;

    for (auto it : g[v]) f |= dostig(it, to);

    mk[v] = 0;

    if (f && v != i && !mkr[v]) {mkr[v] = 1; anser++;}

    return f;
}

bool opr(int v, int p)
{
    mkr[v] = 1;

    kol++;

    bool f = 0;

    for (auto it : g[v])
        {
            if (it == p) continue;

            if (mkr[it]) f = 1;
              else f |= opr(it, v);
        }
    return f;
}
int main()
{
    ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    cin >> n >> m;

    for (int i = 0; i < m; i++)
    {
        int x, y;

        cin >> x >> y;

        g[x].pb(y);

        g[y].pb(x);
    }

    if (m <= n - 1)
    {
        for (i = 1; i <= n; i++) if (siz[i] == 0) dfs(i, -1);
    }
    else

    if (n <= 10 && m <= 100)
    {
        for (i = 1; i <= n; i++)
          for (j = 1; j <= n; j++)
            if (i != j){for (int u = 0; u < 51; u++) mkr[u] = 0; dostig(i, j);}
    }
    else
    {
        for (i = 1; i <= n; i++)
        {
            if (mkr[i]) continue;

            kol = 0;

            if (opr(i, -1)) anser += max(0ll, kol * (kol - 1) * (kol - 2)); else if (kol >= 3) dfs(i, -1);
        }
    }

    cout << anser << endl;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 7 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 7 ms 2688 KB Output is correct
7 Correct 7 ms 2688 KB Output is correct
8 Correct 7 ms 2688 KB Output is correct
9 Correct 27 ms 2688 KB Output is correct
10 Correct 538 ms 2688 KB Output is correct
11 Correct 6 ms 2688 KB Output is correct
12 Correct 7 ms 2688 KB Output is correct
13 Correct 7 ms 2688 KB Output is correct
14 Correct 6 ms 2688 KB Output is correct
15 Correct 7 ms 2688 KB Output is correct
16 Correct 6 ms 2688 KB Output is correct
17 Correct 6 ms 2688 KB Output is correct
18 Correct 6 ms 2688 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Runtime error 583 ms 1048580 KB Execution killed with signal 9 (could be triggered by violating memory limits)
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 7 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 7 ms 2688 KB Output is correct
7 Correct 7 ms 2688 KB Output is correct
8 Correct 7 ms 2688 KB Output is correct
9 Correct 27 ms 2688 KB Output is correct
10 Correct 538 ms 2688 KB Output is correct
11 Correct 6 ms 2688 KB Output is correct
12 Correct 7 ms 2688 KB Output is correct
13 Correct 7 ms 2688 KB Output is correct
14 Correct 6 ms 2688 KB Output is correct
15 Correct 7 ms 2688 KB Output is correct
16 Correct 6 ms 2688 KB Output is correct
17 Correct 6 ms 2688 KB Output is correct
18 Correct 6 ms 2688 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Runtime error 583 ms 1048580 KB Execution killed with signal 9 (could be triggered by violating memory limits)
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 72 ms 11320 KB Output is correct
2 Correct 78 ms 11384 KB Output is correct
3 Execution timed out 1116 ms 403012 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 2816 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2816 KB Output is correct
4 Correct 6 ms 2816 KB Output is correct
5 Correct 6 ms 2816 KB Output is correct
6 Correct 6 ms 2816 KB Output is correct
7 Correct 6 ms 2816 KB Output is correct
8 Correct 6 ms 2816 KB Output is correct
9 Correct 6 ms 2816 KB Output is correct
10 Correct 6 ms 2688 KB Output is correct
11 Correct 6 ms 2816 KB Output is correct
12 Correct 6 ms 2688 KB Output is correct
13 Correct 6 ms 2688 KB Output is correct
14 Correct 6 ms 2816 KB Output is correct
15 Correct 6 ms 2688 KB Output is correct
16 Correct 6 ms 2688 KB Output is correct
17 Correct 6 ms 2688 KB Output is correct
18 Correct 6 ms 2816 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Correct 6 ms 2688 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 64 ms 7544 KB Output is correct
2 Correct 68 ms 7420 KB Output is correct
3 Correct 67 ms 7416 KB Output is correct
4 Correct 79 ms 7544 KB Output is correct
5 Correct 60 ms 7416 KB Output is correct
6 Correct 76 ms 10744 KB Output is correct
7 Correct 80 ms 9592 KB Output is correct
8 Correct 70 ms 9084 KB Output is correct
9 Correct 77 ms 8568 KB Output is correct
10 Correct 61 ms 7544 KB Output is correct
11 Correct 59 ms 7544 KB Output is correct
12 Correct 57 ms 7416 KB Output is correct
13 Correct 59 ms 7416 KB Output is correct
14 Correct 53 ms 7416 KB Output is correct
15 Correct 46 ms 7288 KB Output is correct
16 Correct 30 ms 6528 KB Output is correct
17 Correct 43 ms 7792 KB Output is correct
18 Correct 39 ms 7792 KB Output is correct
19 Correct 39 ms 7788 KB Output is correct
20 Correct 46 ms 7800 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2816 KB Output is correct
3 Incorrect 6 ms 2816 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 75 ms 7416 KB Output is correct
2 Correct 61 ms 7392 KB Output is correct
3 Incorrect 60 ms 6648 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 7 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 7 ms 2688 KB Output is correct
7 Correct 7 ms 2688 KB Output is correct
8 Correct 7 ms 2688 KB Output is correct
9 Correct 27 ms 2688 KB Output is correct
10 Correct 538 ms 2688 KB Output is correct
11 Correct 6 ms 2688 KB Output is correct
12 Correct 7 ms 2688 KB Output is correct
13 Correct 7 ms 2688 KB Output is correct
14 Correct 6 ms 2688 KB Output is correct
15 Correct 7 ms 2688 KB Output is correct
16 Correct 6 ms 2688 KB Output is correct
17 Correct 6 ms 2688 KB Output is correct
18 Correct 6 ms 2688 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Runtime error 583 ms 1048580 KB Execution killed with signal 9 (could be triggered by violating memory limits)
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 7 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 7 ms 2688 KB Output is correct
7 Correct 7 ms 2688 KB Output is correct
8 Correct 7 ms 2688 KB Output is correct
9 Correct 27 ms 2688 KB Output is correct
10 Correct 538 ms 2688 KB Output is correct
11 Correct 6 ms 2688 KB Output is correct
12 Correct 7 ms 2688 KB Output is correct
13 Correct 7 ms 2688 KB Output is correct
14 Correct 6 ms 2688 KB Output is correct
15 Correct 7 ms 2688 KB Output is correct
16 Correct 6 ms 2688 KB Output is correct
17 Correct 6 ms 2688 KB Output is correct
18 Correct 6 ms 2688 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Runtime error 583 ms 1048580 KB Execution killed with signal 9 (could be triggered by violating memory limits)
21 Halted 0 ms 0 KB -