답안 #928853

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
928853 2024-02-17T06:52:08 Z math_rabbit_1028 Newspapers (CEOI21_newspapers) C++14
8 / 100
1 ms 488 KB
#include <bits/stdc++.h>
using namespace std;

int N, M;
vector<int> adj[1010];
int ch[1010], par[1010], dia[1010];

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin >> N >> M;
    for (int i = 1; i <= M; i++) {
        int a, b;
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }

    if (M >= N) {
        cout << "NO\n";
        return 0;
    }

    queue<int> q;
    int r, s;
    for (int i = 1; i <= N; i++) ch[i] = 0;
    q.push(1);
    while (!q.empty()) {
        int v = q.front();
        r = v;
        q.pop();
        ch[v] = 1;
        for (int u : adj[v]) {
            if (ch[u]) continue;
            q.push(u);
        }
    }
    
    par[r] = 0;
    for (int i = 1; i <= N; i++) ch[i] = 0;
    q.push(r);
    while (!q.empty()) {
        int v = q.front();
        s = v;
        q.pop();
        ch[v] = 1;
        for (int u : adj[v]) {
            if (ch[u]) continue;
            par[u] = v;
            q.push(u);
        }
    }
    // cout << r << " " << s << "\n";
    while (s > 0) {
        dia[s] = 1;
        s = par[s];
    }
    for (int i = 1; i <= N; i++) {
        if (dia[i]) continue;
        for (int v : adj[i]) {
            if (dia[v]) continue;
            cout << "NO\n";
            return 0;
        }
    }
    
    cout << "YES\n";
    if (N == 1) cout << "1\n1\n";
    else if (N == 2) cout << "2\n1 1\n";
    else {
        cout << 2*N-4 << "\n";
        for (int i = 2; i <= N-1; i++) cout << i << " ";
        for (int i = N-1; i >= 2; i--) cout << i << " ";
        cout << "\n";   
    }

    return 0;
}

Compilation message

newspapers.cpp: In function 'int main()':
newspapers.cpp:57:11: warning: 's' may be used uninitialized in this function [-Wmaybe-uninitialized]
   57 |         s = par[s];
      |         ~~^~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 488 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 484 KB Output is correct
5 Partially correct 0 ms 348 KB Failed to provide a successful strategy.
6 Partially correct 0 ms 348 KB Failed to provide a successful strategy.
7 Correct 1 ms 344 KB Output is correct
8 Incorrect 0 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 480 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 348 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 344 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 488 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 484 KB Output is correct
5 Partially correct 0 ms 348 KB Failed to provide a successful strategy.
6 Partially correct 0 ms 348 KB Failed to provide a successful strategy.
7 Correct 1 ms 344 KB Output is correct
8 Incorrect 0 ms 348 KB Output isn't correct
9 Halted 0 ms 0 KB -