Submission #569441

# Submission time Handle Problem Language Result Execution time Memory
569441 2022-05-27T11:49:25 Z 79brue Teleporters (IOI08_teleporters) C++17
100 / 100
780 ms 25996 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n, k, len;
int nxt[2000002];
bool visited[2000002];
int l[1000002], r[1000002];
vector<int> vec;
int base;

int main(){
    scanf("%d %d", &n, &k);
    for(int i=1; i<=n; i++){
        scanf("%d %d", &l[i], &r[i]);
        vec.push_back(l[i]), vec.push_back(r[i]);
    }
    sort(vec.begin(), vec.end());
    len = n*2;
    for(int i=0; i<len; i++) nxt[i] = i+1;
    for(int i=1; i<=n; i++){
        l[i] = lower_bound(vec.begin(), vec.end(), l[i]) - vec.begin() + 1;
        r[i] = lower_bound(vec.begin(), vec.end(), r[i]) - vec.begin() + 1;
        nxt[l[i]-1] = r[i];
        nxt[r[i]-1] = l[i];
    }
    nxt[len] = 0;
    vec.clear();
    for(int i=0; i<=len; i++){
        if(visited[i]) continue;
        int x = i, cnt = 0;
        while(!visited[x]){
            visited[x] = 1;
            cnt++;
            x = nxt[x];
        }
        if(i==0) base = cnt;
        else vec.push_back(cnt);
    }
    sort(vec.begin(), vec.end());
    --base;
    while(k){
        if(vec.empty()) break;
        else base += vec.back() + 2, vec.pop_back();
        k--;
    }
    base += k*2 - (k%2);
    printf("%d", base);
}

Compilation message

teleporters.cpp: In function 'int main()':
teleporters.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |     scanf("%d %d", &n, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~~
teleporters.cpp:17:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |         scanf("%d %d", &l[i], &r[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 340 KB Output is correct
2 Correct 6 ms 724 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 468 KB Output is correct
2 Correct 6 ms 724 KB Output is correct
3 Correct 18 ms 1172 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 784 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 864 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 79 ms 3536 KB Output is correct
2 Correct 211 ms 8004 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 139 ms 5808 KB Output is correct
2 Correct 317 ms 11724 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 447 ms 16220 KB Output is correct
2 Correct 541 ms 19504 KB Output is correct
3 Correct 617 ms 21248 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 680 ms 22740 KB Output is correct
2 Correct 755 ms 24656 KB Output is correct
3 Correct 731 ms 25564 KB Output is correct
4 Correct 732 ms 25996 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 753 ms 25836 KB Output is correct
2 Correct 780 ms 25816 KB Output is correct
3 Correct 419 ms 25836 KB Output is correct
4 Correct 776 ms 25764 KB Output is correct