답안 #583271

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
583271 2022-06-25T07:33:19 Z Jomnoi Teleporters (IOI08_teleporters) C++17
100 / 100
359 ms 44532 KB
#include <bits/stdc++.h>
using namespace std;

const int MAX_N = 1e6 + 5;
const int L = 2e6 + 1;

int W[MAX_N], E[MAX_N];
pair <int, int> nxt[L + 1];
bool visited[L + 1];

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);

    int N, M;
    cin >> N >> M;

    for(int i = 0; i < L; i++) {
        nxt[i] = make_pair(i + 1, 0);
    }
    for(int i = 1; i <= N; i++) {
        cin >> W[i] >> E[i];

        nxt[W[i]] = make_pair(E[i] + 1, 1);
        nxt[E[i]] = make_pair(W[i] + 1, 1);
    }

    priority_queue <int> pq;
    visited[L] = true;
    int ans = 0;
    for(int i = 0; i <= L; i++) {
        if(visited[i] == true) {
            continue;
        }

        int u = i, cnt = 0;
        while(visited[u] == false) {
            visited[u] = true;
            cnt += nxt[u].second;
            u = nxt[u].first;
        }

        if(i == 0) {
            ans = cnt;
        }
        else {
            pq.push(cnt);
        }
    }

    while(M--) {
        if(!pq.empty()) {
            ans += pq.top() + 2;
            pq.pop();
        }
        else {
            pq.push(1);
            ans++;
        }
    }
    cout << ans;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 18 ms 17828 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 17876 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 17876 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 17876 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 18 ms 17892 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 15 ms 17884 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 20 ms 17952 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 17876 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 19 ms 17884 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 17876 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 17956 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 18000 KB Output is correct
2 Correct 21 ms 17968 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 20 ms 17940 KB Output is correct
2 Correct 19 ms 18108 KB Output is correct
3 Correct 21 ms 18080 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 22 ms 18008 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 20 ms 18136 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 42 ms 19220 KB Output is correct
2 Correct 131 ms 20836 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 88 ms 20128 KB Output is correct
2 Correct 164 ms 22136 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 222 ms 24968 KB Output is correct
2 Correct 241 ms 26068 KB Output is correct
3 Correct 250 ms 28588 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 335 ms 26920 KB Output is correct
2 Correct 304 ms 27540 KB Output is correct
3 Correct 308 ms 40012 KB Output is correct
4 Correct 288 ms 40404 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 357 ms 29960 KB Output is correct
2 Correct 359 ms 44532 KB Output is correct
3 Correct 288 ms 44368 KB Output is correct
4 Correct 315 ms 44508 KB Output is correct