# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
110489 | MetB | Teleporters (IOI08_teleporters) | C++14 | 704 ms | 58472 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <cstdlib>
#include <string>
#include <set>
#include <map>
#include <algorithm>
#include <bitset>
#include <queue>
#include <math.h>
#include <stack>
#include <vector>
#include <string.h>
#include <random>
typedef long long ll;
const ll MOD = 1e9 + 7, INF = 1e18;
using namespace std;
int n, m, mn, ans;
pair <int, int> a[3000000];
vector <int> v;
int nxt[3000001], c[3000000], u[3000000];
int level[3000000], to[3000001];
int main ()
{
cin >> n >> m;
for (int i = 0; i < n; i++)
{
scanf ("%d%d", &a[i].first, &a[i].second);
nxt[a[i].first - 1] = 2 * i + 1;
nxt[a[i].second - 1] = 2 * i + 2;
if (a[mn].first > a[i].first) mn = i;
}
for (int i = 2000000; i >= 0; i--)
if (!nxt[i]) nxt[i] = nxt[i + 1];
to[0] = 2 * mn + 1;
for (int i = 0; i < n; i++)
{
to[2 * i + 1] = nxt[a[i].second];
to[2 * i + 2] = nxt[a[i].first];
}
int color = 1;
for (int i = 0; i <= 2 * n; i++)
{
if (u[i]) continue;
int x = i;
u[x] = color;
while (!u[to[x]])
{
level[to[x]] = level[x] + 1;
u[to[x]] = color;
x = to[x];
}
if (u[to[x]] == color)
{
if (color == 1) ans = level[x] - level[to[x]];
else v.push_back (level[x] - level[to[x]] + 1);
}
color++;
}
sort (v.begin(), v.end());
for (int i = v.size () - 1; i >= 0 && m; i--)
{
ans += v[i] + 2;
m--;
}
cout << ans + m / 2 * 4 + m % 2;
}
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... |