Submission #1230585

#TimeUsernameProblemLanguageResultExecution timeMemory
1230585kilikumaNile (IOI24_nile)C++20
67 / 100
2096 ms5704 KiB
#include "nile.h"
#include <bits/stdc++.h>

using namespace std; 

vector<long long> calculate_costs(vector<int> w, vector<int> a, vector<int> b, vector<int> e) {
  int n = w.size(); 
  vector<pair<int, int>> arti(n, {0ll, 0ll});
  long long sum = 0; 
  for (int i = 0; i < n; i ++) {
    arti[i] = {w[i], a[i] - b[i]};
    sum += a[i];  
  }
  sort(arti.begin(), arti.end()); 
  int q = e.size(); 
  vector<long long> ans(q, 0); 
  for (int i = 0; i < q; i ++) {
    vector<long long> dp(n + 1, 0ll); 
    dp[n] = 0ll; 
    for (int j = n - 1; j >= 0; j --) {
      dp[j] = dp[j + 1]; 
      for (int k = j + 1; k < n; k ++) {
        if (k - j > 2) 
          break; 
        if (arti[k].first - arti[j].first <= e[i]) 
          dp[j] = max(dp[j], dp[k + 1] + arti[k].second + arti[j].second); 
      }
    }
    ans[i] = sum - dp[0]; 
  }
  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...