제출 #1369841

#제출 시각아이디문제언어결과실행 시간메모리
1369841moha1111나일강 (IOI24_nile)C++20
0 / 100
2094 ms5248 KiB
//#include "nile.h"
#include "bits/stdc++.h"
using namespace std;

std::vector<long long> calculate_costs(std::vector<int> w, std::vector<int> a , std::vector<int> b, std::vector<int> e) {
  
    long long n = a.size() , q = e.size() , sum = accumulate(a.begin() , a.end() , 0LL);
    vector<int> dif(n + 5);
    vector<pair<int , int>> W;
    w.push_back(-1);
    for(int i = 0 ; i < n ; i++)
        W.push_back({w[i] , i + 1});

    sort(W.begin() , W.end());
    sort(w.begin() , w.end());
    for(int i = 1 ; i <= n ; i++)
        dif[i] = a[W[i - 1].second] - b[W[i - 1].second];
    
    vector<long long> ans;
    sort(e.begin() , e.end());
    reverse(e.begin() , e.end());
    while(q--)
    {
        long long d = e.back();
        e.pop_back();
        vector<long long> dp(n + 5 , 0);
        for(int i = 1 ; i <= n ; i++)
        {
            dp[i] = dp[i - 1];
            for(int j = 1 ; j < i ; j++)
            {
              if(abs(w[i] - w[j]) <= d)
                  dp[i] = max(dp[i] , dp[j] + dif[i] + dif[j]);
            }
        }
        ans.push_back(sum - dp[n]);
    }
    return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…