Submission #583263

# Submission time Handle Problem Language Result Execution time Memory
583263 2022-06-25T07:12:59 Z Jomnoi Teleporters (IOI08_teleporters) C++17
25 / 100
333 ms 19784 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];
    }

    for(int i = 1; i <= N; i++) {
        id[i] = i;
        parent[i] = i;
        sz[i] = 1;
    }

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

    for(int l = 1, r = 2; l <= N; l++) {
        while(r <= N and W[id[r]] <= E[id[l]] and E[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 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
# 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 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 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 Correct 1 ms 340 KB Output is correct
2 Incorrect 4 ms 596 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 596 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 596 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 34 ms 2788 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 73 ms 4480 KB Output is correct
2 Correct 138 ms 9044 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 178 ms 12508 KB Output is correct
2 Incorrect 218 ms 15008 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 293 ms 17516 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 333 ms 19784 KB Output isn't correct
2 Halted 0 ms 0 KB -