답안 #217968

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
217968 2020-03-31T11:22:01 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)
{
    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)
{
    mk[v] = 1;

    kol++;

    bool f = 0;

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

            if (mk[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)
    {
        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 += kol * (kol - 1) * (kol - 2);

                continue;
            }
            else 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 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 6 ms 2688 KB Output is correct
9 Correct 27 ms 2688 KB Output is correct
10 Correct 531 ms 2808 KB Output is correct
11 Correct 6 ms 2688 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 2688 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 2688 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Runtime error 573 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 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 6 ms 2688 KB Output is correct
9 Correct 27 ms 2688 KB Output is correct
10 Correct 531 ms 2808 KB Output is correct
11 Correct 6 ms 2688 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 2688 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 2688 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Runtime error 573 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 62 ms 11896 KB Output is correct
2 Correct 87 ms 11896 KB Output is correct
3 Execution timed out 1103 ms 459936 KB Time limit exceeded
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 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 8 ms 2816 KB Output is correct
8 Correct 5 ms 2688 KB Output is correct
9 Correct 6 ms 2688 KB Output is correct
10 Correct 6 ms 2816 KB Output is correct
11 Correct 6 ms 2688 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 2688 KB Output is correct
15 Correct 6 ms 2688 KB Output is correct
16 Correct 6 ms 2816 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 Correct 6 ms 2688 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 58 ms 7928 KB Output is correct
2 Correct 64 ms 7928 KB Output is correct
3 Correct 60 ms 7928 KB Output is correct
4 Correct 71 ms 7928 KB Output is correct
5 Correct 66 ms 7800 KB Output is correct
6 Correct 80 ms 11308 KB Output is correct
7 Correct 81 ms 10108 KB Output is correct
8 Correct 89 ms 9592 KB Output is correct
9 Correct 70 ms 8952 KB Output is correct
10 Correct 62 ms 7928 KB Output is correct
11 Correct 64 ms 7928 KB Output is correct
12 Correct 62 ms 7928 KB Output is correct
13 Correct 59 ms 7928 KB Output is correct
14 Correct 71 ms 7676 KB Output is correct
15 Correct 46 ms 7544 KB Output is correct
16 Correct 30 ms 6400 KB Output is correct
17 Correct 51 ms 8688 KB Output is correct
18 Correct 42 ms 8304 KB Output is correct
19 Correct 42 ms 8180 KB Output is correct
20 Correct 41 ms 8192 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Incorrect 6 ms 2688 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 68 ms 7928 KB Output is correct
2 Correct 66 ms 7928 KB Output is correct
3 Incorrect 65 ms 7416 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 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 6 ms 2688 KB Output is correct
9 Correct 27 ms 2688 KB Output is correct
10 Correct 531 ms 2808 KB Output is correct
11 Correct 6 ms 2688 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 2688 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 2688 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Runtime error 573 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 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 6 ms 2688 KB Output is correct
9 Correct 27 ms 2688 KB Output is correct
10 Correct 531 ms 2808 KB Output is correct
11 Correct 6 ms 2688 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 2688 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 2688 KB Output is correct
19 Correct 6 ms 2688 KB Output is correct
20 Runtime error 573 ms 1048580 KB Execution killed with signal 9 (could be triggered by violating memory limits)
21 Halted 0 ms 0 KB -