# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1146647 | blackslex | Teleporters (IOI08_teleporters) | C++20 | 599 ms | 38740 KiB |
#include<bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
int n, m, x, y;
int main() {
scanf("%d %d", &n, &m);
vector<pii> c(n);
vector<int> pos;
vector<int> rnxt(n * 2, -1), nxt(n * 2, -1);
vector<bool> f(n * 2);
for (auto &[x, y]: c) {
scanf("%d %d", &x, &y);
pos.emplace_back(x);
pos.emplace_back(y);
}
sort(pos.begin(), pos.end());
for (int i = 0; i < pos.size() - 1; i++) rnxt[i] = i + 1;
for (auto &[x, y]: c) {
int xx = lower_bound(pos.begin(), pos.end(), x) - pos.begin();
int yy = lower_bound(pos.begin(), pos.end(), y) - pos.begin();
nxt[xx] = rnxt[yy];
nxt[yy] = rnxt[xx];
}
auto get = [&] (int st) {
int res = 0;
while (~st && !f[st]) {
res++; f[st] = 1;
st = nxt[st];
}
return res;
};
int ans = get(0);
vector<int> z;
for (int i = 1; i < n * 2; i++) {
if (!f[i]) z.emplace_back(get(i));
}
sort(z.begin(), z.end());
while (!z.empty() && m--) {
ans += z.back() + 2; z.pop_back();
}
m++;
ans += (m / 2) * 4 + (m & 1);
printf("%d", ans);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |