QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#847204#9987. 骑行计划hcywoiWA 91ms5300kbC++231.1kb2025-01-07 18:51:172025-01-07 18:51:17

Judging History

This is the latest submission verdict.

  • [2025-01-07 18:51:17]
  • Judged
  • Verdict: WA
  • Time: 91ms
  • Memory: 5300kb
  • [2025-01-07 18:51:17]
  • Submitted

answer

#include <bits/stdc++.h>

using i64 = long long;

constexpr int inf = 1E9;

int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);

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

  std::vector<int> s(n);
  for (int i = 0; i < n; i++) {
    std::cin >> s[i];
  }

  std::vector<int> w(m), d(m), t(m);
  for (int i = 0; i < m; i++) {
    std::cin >> w[i] >> d[i] >> t[i];
  }

  std::vector dp(n, std::vector<int>(n, inf));

  auto get = [&](int l, int r) -> int {
    if (l > r) {
      return 0;
    }
    return dp[l][r];
  };

  for (int l = n - 1; l >= 0; l--) {
    std::vector sum(m, std::vector<int>(n));
    for (int i = 0; i < m; i++) {
      for (int r = l; r < l + d[i] && r < n; r++) {
        sum[i][r] = (l == r ? 0 : sum[i][r - 1]) + std::max(0, s[r] - t[i]) * c;
      }
    }
    for (int r = l; r < n; r++) {
      dp[l][r] = get(l + 1, r) + s[l] * c;
      for (int i = 0; i < m; i++) {
        dp[l][r] = std::min(dp[l][r], get(l + d[i], r) + sum[i][std::min(l + d[i] - 1, r)] + w[i]);
      }
    }
  }
  std::cout << dp[0][n - 1] << "\n";

  return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 91ms
memory: 5300kb

input:

85 5408 4856
52 43 38 21 33 28 24 46 4 66 14 51 63 24 69 35 50 9 63 58 43 69 1 28 59 56 50 63 12 23 41 6 19 9 41 45 14 52 6 7 1 24 30 9 33 54 71 38 55 28 61 10 21 13 22 56 29 24 19 27 9 3 25 54 45 50 9 42 13 5 32 37 56 51 24 3 12 37 68 29 69 40 53 50 69
486593 41 10
175445 13 5
1271250 9 35
7064 1 2...

output:

1440909

result:

ok single line: '1440909'

Test #2:

score: -100
Wrong Answer
time: 53ms
memory: 4044kb

input:

149 1277 4355
43 52 37 18 41 38 5 57 33 37 50 51 60 31 57 64 16 15 16 51 40 65 52 71 45 24 47 74 4 64 53 37 4 73 10 35 51 49 18 21 28 2 45 29 46 50 73 17 11 66 12 6 58 56 23 67 41 64 23 71 70 72 25 7 15 58 63 58 46 51 70 65 34 65 60 17 37 2 62 53 17 74 34 18 19 3 16 21 67 43 65 64 44 14 54 71 54 65 ...

output:

2496502

result:

wrong answer 1st lines differ - expected: '2479892', found: '2496502'