Submission #501675

# Submission time Handle Problem Language Result Execution time Memory
501675 2022-01-04T09:57:37 Z 600Mihnea Teleporters (IOI08_teleporters) C++17
65 / 100
767 ms 65540 KB
#include <bits/stdc++.h>

using namespace std;


signed main() {
  ios::sync_with_stdio(0); cin.tie(0);

  int N, E;
  cin >> N >> E;
  vector<pair<int, int>> guys;
  for (int i = 0; i < N; i++) {
    int A, B;
    cin >> A >> B;
    guys.push_back({A, i});
    guys.push_back({B, i});
  }
  sort(guys.begin(), guys.end());
  vector<int> SM(N);
  for (int i = 0; i < 2 * N; i++) {
    SM[guys[i].second] += i;
  }
  vector<int> nxt(2 * N + 1);
  for (int i = 0; i < 2 * N; i++) {
    int Type = guys[i].second;
    int Other = SM[Type] - i;
    nxt[i] = Other + 1;
  }

  bool WannaCheck = true;
  if (WannaCheck) {
    map<int, int> B;
    for (int i = 0; i < 2 * N; i++) {
      B[nxt[i]]++;
    }
    for (int i = 1; i < 2 * N + 1; i++) {
      assert(B.count(i) && B[i] == 1);
    }
  }
  vector<bool> vis(2 * N + 1, false);

  int ZDApath = 0;
  for (int i = 0; i != 2 * N; i = nxt[i]) {
    ZDApath++;
    vis[i] = true;
  }
  vis[2 * N] = true;
  vector<int> SAD;
  for (int i = 0; i <= 2 * N; i++) {
    if (!vis[i]) {
      int LEN = 1;
      vis[i] = true;
      for (int j = nxt[i]; j != i; j = nxt[j]) {
        LEN++;
        vis[j] = true;
      }
      SAD.push_back(LEN);
    }
  }
  sort(SAD.begin(), SAD.end());
  int S = ZDApath;
  while (!SAD.empty() && E) {
    E--;
    S += 2 + SAD.back();
    SAD.pop_back();
  }

  for (int j = 1; j <= E; j++) {
    if (j & 1) {
      S += 3;
    } else {
      S += 1;
    }
  }
  cout << S << "\n";
}


# Verdict Execution time Memory Grader output
1 Correct 0 ms 308 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 308 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 312 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 312 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 304 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 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 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 708 KB Output is correct
2 Correct 9 ms 1600 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 836 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 13 ms 1980 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 16 ms 2440 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 151 ms 17160 KB Output is correct
2 Correct 481 ms 40936 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 282 ms 28816 KB Output is correct
2 Incorrect 767 ms 61152 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Runtime error 465 ms 65540 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 645 ms 65540 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 561 ms 65540 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -