답안 #25898

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
25898 2017-06-25T03:15:42 Z model_code Triumphal arch (POI13_luk) C++11
0 / 100
346 ms 39392 KB
/*************************************************************************
 *                                                                       *
 *                    XX Olimpiada Informatyczna                         *
 *                                                                       *
 *   Zadanie:              Luk triumfalny                                *
 *   Autor:                Karol Pokorski                                *
 *   Zlozonosc czasowa:    O(n^2)                                        *
 *   Zlozonosc pamieciowa: O(n)                                          *
 *   Opis:                 Rozwiazanie bledne                            *
 *                         Oblicza odleglosci od korzenia, nastepnie     *
 *                         probuje pokrywac kolejne poziomy.             *
 *                                                                       *
 *************************************************************************/

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

const int MAXN = 1000001;

int numD[MAXN], maxD = 0;
vector<int> adj[MAXN];
bool visited[MAXN];

void Dfs(int u, int curD) {
    visited[u] = true;
    numD[curD]++;
    maxD = max(maxD, curD);

    for (int i = 0; i < (int)adj[u].size(); i++)
        if (!visited[adj[u][i]])
            Dfs(adj[u][i], curD+1);
}

int main() {
    int ret, N, result = 0;

    ret = scanf("%d", &N);
    if (ret < 0)
        return 0;
    for (int i = 0; i < N-1; i++) {
        int u, v;

        ret = scanf("%d%d", &u, &v);
        u--;
        v--;

        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    Dfs(0, 0);

    N--;
    while (N > 0) {
        int canUse = 0;

        result++;

        for (int i = 1; i <= maxD; i++) {
            canUse++;
            while ((canUse > 0) && (numD[i] > 0)) {
                canUse--;
                numD[i]--;
                N--;
            }
        }
    }

    printf("%d\n", result);

    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 29492 KB Output is correct
2 Correct 0 ms 29492 KB Output is correct
3 Incorrect 6 ms 29492 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 29492 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 29492 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 29492 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 16 ms 29888 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 19 ms 30548 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 83 ms 32792 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 206 ms 36092 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 346 ms 39392 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 286 ms 39392 KB Output isn't correct
2 Halted 0 ms 0 KB -