Submission #1231090

#TimeUsernameProblemLanguageResultExecution timeMemory
1231090bangan나일강 (IOI24_nile)C++20
23 / 100
2097 ms4840 KiB
#include "nile.h" #include <bits/stdc++.h> using namespace std; #define ll long long std::vector<long long> calculate_costs(std::vector<int> W, std::vector<int> A, std::vector<int> B, std::vector<int> E) { int N = W.size(); int Q = E.size(); vector<int> ord(N); iota(ord.begin(), ord.end(), 0); sort(ord.begin(), ord.end(), [&](int i, int j) { if (W[i]==W[j]) return A[i]-B[i] < A[j]-B[j]; return W[i]<W[j]; }); vector<ll> ret; for (int d : E) { vector<ll> dp(N); dp[0] = A[ord[0]]; if (1<N && W[ord[1]] - W[ord[0]] <= d) dp[1] = B[ord[0]] + B[ord[1]]; else if (1<N) dp[1] = A[ord[0]] + A[ord[1]]; for (int i=2; i<N; i++) { dp[i] = dp[i-1] + A[ord[i]]; if (W[ord[i]] - W[ord[i-1]] <= d) dp[i] = min(dp[i], dp[i-2] + B[ord[i]] + B[ord[i-1]]); } ret.push_back(dp[N-1]); } return ret; }
#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...