Submission #583260

# Submission time Handle Problem Language Result Execution time Memory
583260 2022-06-25T07:08:53 Z Jomnoi Teleporters (IOI08_teleporters) C++17
20 / 100
223 ms 34388 KB
#include <bits/stdc++.h>
using namespace std;

const int MAX_N = 1e6 + 5;

int W[MAX_N], E[MAX_N];
int id[MAX_N];
int parent[MAX_N], sz[MAX_N];

int find_parent(int u) {
    if(u == parent[u]) {
        return u;
    }
    return parent[u] = find_parent(parent[u]);
}

void merge(int u, int v) {
    u = find_parent(u), v = find_parent(v);
    if(u == v) {
        return;
    }

    sz[u] += sz[v];
    parent[v] = u;
}

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

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

    for(int i = 1; i <= N; i++) {
        cin >> W[i] >> E[i];
    }

    sort(id + 1, id + N + 1, [&](const int &a, const int &b) {
        return W[a] < W[b];
    });

    iota(parent + 1, parent + N + 1, 1);
    fill(sz + 1, sz + N + 1, 1);
    for(int l = 1, r = 2; l <= N; l++) {
        while(r <= N and W[id[r]] <= E[id[l]]) {
            merge(id[l], id[r]);
            r++;
        }
    }

    int ans = 0;
    for(int i = 1; i <= N; i++) {
        if(find_parent(i) == i) {
            if(sz[i] > 1) {
                ans += 4;
            }
            else if(M > 0) {
                M--;
                ans += 4;
            }
            else {
                ans++;
            }
        }
    }

    while(M >= 2) {
        ans += 4;
        M -= 2;
    }
    ans += M;
    
    cout << ans;
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 356 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 324 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 336 KB Output is correct
2 Incorrect 2 ms 584 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 724 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 848 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 32 ms 4368 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 45 ms 7372 KB Output is correct
2 Correct 123 ms 15620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 126 ms 21504 KB Output is correct
2 Incorrect 158 ms 25840 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 187 ms 30208 KB Output is correct
2 Incorrect 199 ms 32716 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 223 ms 34388 KB Output isn't correct
2 Halted 0 ms 0 KB -