이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "meetings.h"
#include <bits/stdc++.h>
using namespace std;
int cl_r[100005],cl_l[100005];
vector<long long> minimum_costs(vector<int> H, vector<int> L,vector<int> R) {
int last=-1;
for (int i = H.size()-1; i >= 0; --i)
{
if(H[i]==1&&(i==(int)(H.size()-1)||H[i+1]==2))
last=i;
//if(last==-1)cl_l
if(H[i]==2)cl_r[i]=-1;
else cl_r[i]=last;
}
/*for (int i = 0; i < H.size(); ++i)
{
cout<<cl_r[i]<<" ";
}*/
//cout<<"\n";
last=-1;
for (int i = 0; i < (int)H.size(); ++i)
{
if(H[i]==1&&(i==0||H[i-1]==2))
last=i;
if(H[i]==2)cl_l[i]=-1;
else cl_l[i]=last;
//cout<<cl_l[i]<<" ";
}
//cout<<"\n";
int Q = L.size();
vector<long long> C(Q);
for (int i = 0; i < Q; ++i)
{
//C[i]=min(cl_r)
C[i]=(int)(1e9);
if(H[R[i]]==2&&H[L[i]]==2){C[i]=min(C[i],2LL*(R[i]-L[i]+1));continue;}
if(cl_r[L[i]]!=-1&&cl_r[L[i]]<=R[i])
C[i]=min(C[i],cl_r[L[i]]-L[i]+1LL+(2LL*(R[i]-cl_r[L[i]])));
if(cl_l[R[i]]!=-1&&cl_l[R[i]]>=L[i])
C[i]=min(C[i],R[i]-cl_l[R[i]]+1LL+(2LL*(cl_l[R[i]]-L[i])));
}
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... |