#include <bits/stdc++.h>
#define eb emplace_back
#define sz(V) ((int)(V).size())
#define allv(V) ((V).begin()),((V).end())
#define sorv(V) sort(allv(V))
using namespace std;
typedef long long ll;
const int MAXN = 1000005;
const int MAXX = 2000005;
priority_queue<int> PQ;
vector<int> VX;
int C[MAXX];
int LI[MAXX], RI[MAXX];
int A[MAXN], B[MAXN];
bitset<MAXX> chk;
int N, M, Ans;
void f(int i, int &c) {
chk[i] = true;
c++; i = C[i];
if(!i || chk[i]) return;
f(i, c);
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> N >> M;
for(int i = 1; i <= N; i++)
cin >> A[i] >> B[i];
VX.eb(0); VX.eb(MAXX-1);
for(int i = 1; i <= N; i++) {
VX.eb(A[i]); VX.eb(B[i]);
}
sorv(VX);
LI[0] = 0; RI[MAXX-1] = sz(VX)-1;
for(int i = 1; i + 1 < sz(VX); i++) {
RI[VX[i]] = i;
LI[VX[i]] = i+1;
}
for(int i = 1; i <= N; i++) {
C[RI[A[i]]] = LI[B[i]];
C[RI[B[i]]] = LI[A[i]];
}
Ans = -1;
for(int i = 1;;) {
chk[i] = true; Ans++;
i = C[i];
if(!i || chk[i]) break;
}
for(int i = 1, n = sz(VX), c; i < n; i++) {
if(chk[i]) continue;
c = 0; for(int j = i;;) {
c++; chk[j] = true;
j = C[j];
if(!j || chk[j]) break;
}
PQ.push(c);
}
for(; M--;) {
if(!PQ.empty()) {
Ans += PQ.top() + 2;
PQ.pop();
}
else {
Ans++;
PQ.push(1);
}
}
cout << Ans << endl;
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
248 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
632 KB |
Output is correct |
2 |
Correct |
7 ms |
1144 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
632 KB |
Output is correct |
2 |
Correct |
8 ms |
1628 KB |
Output is correct |
3 |
Correct |
15 ms |
1656 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
1016 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
10 ms |
1272 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
68 ms |
7744 KB |
Output is correct |
2 |
Correct |
188 ms |
21388 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
128 ms |
15916 KB |
Output is correct |
2 |
Correct |
296 ms |
27732 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
417 ms |
34644 KB |
Output is correct |
2 |
Correct |
469 ms |
38100 KB |
Output is correct |
3 |
Correct |
548 ms |
51796 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
653 ms |
42656 KB |
Output is correct |
2 |
Correct |
650 ms |
46040 KB |
Output is correct |
3 |
Correct |
616 ms |
53976 KB |
Output is correct |
4 |
Correct |
625 ms |
54440 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
681 ms |
60980 KB |
Output is correct |
2 |
Correct |
682 ms |
61160 KB |
Output is correct |
3 |
Correct |
460 ms |
62340 KB |
Output is correct |
4 |
Correct |
620 ms |
62408 KB |
Output is correct |