Submission #908721

# Submission time Handle Problem Language Result Execution time Memory
908721 2024-01-16T17:37:13 Z vjudge1 Pinball (JOI14_pinball) C++17
0 / 100
1 ms 452 KB
#include <iostream>
#include <vector>
#include <algorithm>
#include <cassert>
#include <cstring>
#warning That's the baby, that's not my baby

typedef long long ll;

struct Device {
  int a, b, c, d;
};

int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(0);

  int n, m;
  std::cin >> n >> m;

  Device a[n + 1];
  std::vector<int> norm;
  norm.push_back(1);
  norm.push_back(m);

  for (int i = 1; i <= n; i++) {
    std::cin >> a[i].a >> a[i].b >> a[i].c >> a[i].d;
    norm.push_back(a[i].c);
  }

  std::sort(norm.begin(), norm.end());
  norm.erase(std::unique(norm.begin(), norm.end()), norm.end());

  for (int i = 1; i <= n; i++) {
    a[i].a = std::lower_bound(norm.begin(), norm.end(), a[i].a) - norm.begin() + 1;
    a[i].b = std::lower_bound(norm.begin(), norm.end(), a[i].b) - norm.begin() + 1;
    a[i].c = std::lower_bound(norm.begin(), norm.end(), a[i].c) - norm.begin() + 1;
  }

  int sz = (int) norm.size();

  ll dpl[n + 1][sz + 1];
  ll dpr[n + 1][sz + 1];
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= sz; j++) {
      dpl[i][j] = dpr[i][j] = 1e18;
    }
  }

  dpl[0][1] = 0;
  dpr[0][sz] = 0;

  ll answer = 1e18;

  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= sz; j++) {
      dpl[i][j] = std::min(dpl[i][j], dpl[i - 1][j]);
      dpr[i][j] = std::min(dpr[i][j], dpr[i - 1][j]);
      int k = j;
      if (a[i].a <= k && k <= a[i].b) {
        k = a[i].c;
      }
      dpl[i][k] = std::min(dpl[i][k], dpl[i - 1][j] + a[i].d);
      dpr[i][k] = std::min(dpr[i][k], dpr[i - 1][j] + a[i].d);
    }
    for (int j = 1; j <= sz; j++) {
      answer = std::min(answer, dpl[i][j] + dpr[i][j]);
      for (int p = a[i].a; p <= a[i].b; p++) {
        answer = std::min(answer, dpl[i][a[i].c] + dpr[i - 1][p]);
      }
    }
  }

  if (answer == 1e18) {
    answer = -1;
  }
  std::cout << answer;

  return 0;
}

Compilation message

pinball.cpp:6:2: warning: #warning That's the baby, that's not my baby [-Wcpp]
    6 | #warning That's the baby, that's not my baby
      |  ^~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 1 ms 452 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 1 ms 452 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 1 ms 452 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 1 ms 452 KB Output isn't correct
3 Halted 0 ms 0 KB -