Submission #569293

# Submission time Handle Problem Language Result Execution time Memory
569293 2022-05-27T09:30:10 Z 79brue Teleporters (IOI08_teleporters) C++17
70 / 100
1000 ms 40416 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()) base += 2;
        else base += vec.back() + 2, vec.pop_back();
    }
    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 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 308 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 Incorrect 1 ms 316 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 308 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 308 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 316 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 316 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 468 KB Output is correct
2 Correct 7 ms 728 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 448 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 11 ms 920 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 11 ms 1036 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 88 ms 5292 KB Output is correct
2 Correct 243 ms 12308 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 184 ms 8736 KB Output is correct
2 Incorrect 378 ms 18324 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 563 ms 25284 KB Output is correct
2 Correct 673 ms 30412 KB Output is correct
3 Correct 695 ms 33000 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 865 ms 35640 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 966 ms 40416 KB Output is correct
2 Execution timed out 1004 ms 40404 KB Time limit exceeded
3 Halted 0 ms 0 KB -