Submission #1189865

#TimeUsernameProblemLanguageResultExecution timeMemory
1189865SalihSahinNile (IOI24_nile)C++20
67 / 100
2096 ms7240 KiB
#include "bits/stdc++.h"
#include "nile.h"
#define pb push_back
using namespace std;
#define ll long long

const ll inf = 1e17;

vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E) {
  int n = W.size();
  vector<array<ll, 3> > art(n);
  for(int i = 0; i < n; i++){
    art[i] = {W[i], A[i], B[i]};
  }
  sort(art.begin(), art.end());
  int q = E.size();
  vector<ll> ans(q);

  for(int qt = 0; qt < q; qt++){
      int d = E[qt];

      vector<ll> dp(n+1, inf);
      dp[0] = 0;
      for(int i = 0; i < n; i++){
        dp[i+1] = min(dp[i+1], dp[i] + art[i][1]);
        if(i > 0 && art[i][0] - art[i-1][0] <= d) dp[i+1] = min(dp[i+1], dp[i-1] + art[i-1][2] + art[i][2]);
        if(i > 1 && art[i][0] - art[i-2][0] <= d) dp[i+1] = min(dp[i+1], dp[i-2] + art[i-2][2] + art[i-1][1] + art[i][2]);
      }

      ans[qt] = dp[n];
  }

  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...