이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "meetings.h"
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll n,i,j,ma[5050][5050],kan[5050][5050],kir[5050][5050],has;
std::vector<long long> minimum_costs(std::vector<int> H, std::vector<int> L,
std::vector<int> R) {
n=H.size();
for(i=0;i<n;i++)
{
ma[i][i]=H[i];
for(j=i+1;j<n;j++)
ma[i][j]=max(ma[i][j-1],(ll)H[j]);
}
for(i=0;i<n;i++)
{
kan[i][i]=H[i];
for(j=i+1;j<n;j++)
kan[i][j]=kan[i][j-1]+ma[i][j];
}
for(i=0;i<n;i++)
{
kir[i][i]=H[i];
for(j=i-1;j>=0;j--)
kir[i][j]=kir[i][j+1]+ma[j][i];
}
/*for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
cout<<i<<" "<<j<<" "<<kir[j][i]<<" "<<kan[i][j]<<" "<<ma[i][j]<<"\n";
}*/
int Q = L.size();
std::vector<long long> C(Q);
for (int TC = 0; TC < Q; ++TC)
{
has=1e18;
for(i=L[TC];i<R[TC];i++)
has=min(has,kir[i][L[TC]]+kan[i+1][R[TC]]);
C[TC]=has;
}
return C;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |