제출 #836468

#제출 시각아이디문제언어결과실행 시간메모리
836468Mohmad_Zaid모임들 (IOI18_meetings)C++14
19 / 100
956 ms786432 KiB
// #include "meetings.h"
#include <bits/stdc++.h>
#define pb push_back
#define ll long long
#define print(a) for(int i=0;i<a.size();i++)cout<<a[i]<<endl;
using namespace std;
vector<long long> minimum_costs(vector<int> H, vector<int> L,vector<int> R) {
    int q = L.size();
    int n = H.size();
    vector<vector<ll>>suffix(n,vector<ll>(n+1,0));
    vector<vector<ll>>prefix(n,vector<ll>(n+1,0));
    vector<ll>C(q);
    for(int i=0;i<n;i++){
        ll mx=0;
        for(int j=i;j<n;j++){
            mx=max(mx,(ll)H[j]);
            suffix[i][j+1]=suffix[i][j]+mx;
        }
        mx=0;
        for(int j=i;j>=0;j--){
            mx=max(mx,(ll)H[j]);
            prefix[i][j]=prefix[i][j+1]+mx;
        }
    }
    for(int i=0;i<q;i++){
        ll mn=LONG_LONG_MAX;
        for(int j=L[i];j<=R[i];j++){
            ll sm=0;
            sm+=H[j];
            sm+=prefix[j][L[i]]-prefix[j][j];
            sm+=suffix[j][R[i]+1]-suffix[j][j+1];
            mn=min(mn,sm);
        }
        C[i]=mn;
    }
    return C;
}
// int main(){
//     vector<ll>c;
//     c=minimum_costs({2,4,3,5,4}, {2,1,0}, {4,1,4});
//     print(c);
// }
#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...