답안 #543919

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
543919 2022-03-31T15:31:37 Z Olympia 어르신 집배원 (BOI14_postmen) C++17
38 / 100
500 ms 16780 KB
#include <vector>
#include <algorithm>
#include <iostream>
#include <set>
#include <cmath>
#include <map>
#include <random>
#include <cassert>
#include <ctime>
#include <stack>
#include <cstdlib>
#include <queue>
#include <cstdio>
#include <limits.h>

using namespace std;

vector<pair<int,int>> adj[(int)5e5];
bool hasVisited[(int)5e5];
bool okay[(int)5e5];

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int N, M;
    scanf("%d%d", &N, &M);
    for (int i = 0; i < M; i++) {
        int u, v;
        scanf("%d%d", &u, &v);
        u--, v--;
        adj[u].emplace_back(v, i), adj[v].emplace_back(u, i);
    }
    for (int i = 0; i < M; i++) {
        okay[i] = true;
    }
    stack<pair<int,int>> nodes;
    for (int i = 0; i < N; i++) {
        nodes.push({i, -1});
        while (!nodes.empty()) {
            int cur = nodes.top().first;
            int prev = nodes.top().second;
            okay[prev] = false;
            hasVisited[cur] = true;
            bool upd = false;
            for (pair<int,int> &pr: adj[cur]) {
                int j = pr.first;
                if (pr.second == prev || !okay[pr.second]) {
                    continue;
                }
                okay[pr.second] = false;
                if (hasVisited[j]) {
                    while (!nodes.empty() && nodes.top().first != j) {
                        hasVisited[nodes.top().first] = false;
                        printf("%d ", nodes.top().first + 1);
                        nodes.pop();
                    }
                    printf("%d\n", j + 1);
                } else {
                    nodes.push({j, pr.second});
                }
                upd = true;
                break;
            }
            if (!upd) {
                nodes.pop();
            }
        }
    }
}

Compilation message

postmen.cpp: In function 'int main()':
postmen.cpp:26:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |     scanf("%d%d", &N, &M);
      |     ~~~~~^~~~~~~~~~~~~~~~
postmen.cpp:29:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |         scanf("%d%d", &u, &v);
      |         ~~~~~^~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 11988 KB Output is correct
2 Correct 7 ms 11976 KB Output is correct
3 Correct 7 ms 12080 KB Output is correct
4 Correct 9 ms 12172 KB Output is correct
5 Correct 8 ms 12092 KB Output is correct
6 Correct 8 ms 12116 KB Output is correct
7 Correct 13 ms 12628 KB Output is correct
8 Correct 7 ms 12116 KB Output is correct
9 Correct 57 ms 14512 KB Output is correct
10 Correct 7 ms 12116 KB Output is correct
11 Correct 7 ms 12116 KB Output is correct
12 Correct 50 ms 14804 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 11988 KB Output is correct
2 Correct 6 ms 11988 KB Output is correct
3 Correct 7 ms 11988 KB Output is correct
4 Correct 8 ms 12176 KB Output is correct
5 Correct 8 ms 12120 KB Output is correct
6 Correct 8 ms 12116 KB Output is correct
7 Correct 12 ms 12632 KB Output is correct
8 Correct 7 ms 12116 KB Output is correct
9 Correct 59 ms 14556 KB Output is correct
10 Correct 7 ms 12116 KB Output is correct
11 Correct 7 ms 12116 KB Output is correct
12 Correct 49 ms 14768 KB Output is correct
13 Correct 63 ms 16780 KB Output is correct
14 Correct 57 ms 15596 KB Output is correct
15 Execution timed out 839 ms 15356 KB Time limit exceeded
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 11988 KB Output is correct
2 Correct 6 ms 12036 KB Output is correct
3 Correct 7 ms 11988 KB Output is correct
4 Correct 9 ms 12116 KB Output is correct
5 Correct 7 ms 12116 KB Output is correct
6 Correct 8 ms 12116 KB Output is correct
7 Correct 14 ms 12536 KB Output is correct
8 Correct 7 ms 12116 KB Output is correct
9 Correct 61 ms 14564 KB Output is correct
10 Correct 8 ms 12116 KB Output is correct
11 Correct 8 ms 12116 KB Output is correct
12 Correct 43 ms 14804 KB Output is correct
13 Correct 67 ms 16716 KB Output is correct
14 Correct 53 ms 15672 KB Output is correct
15 Execution timed out 863 ms 15220 KB Time limit exceeded
16 Halted 0 ms 0 KB -