제출 #823361

#제출 시각아이디문제언어결과실행 시간메모리
823361Trumling모임들 (IOI18_meetings)C++14
19 / 100
2944 ms786432 KiB
#include "meetings.h" #include<bits/stdc++.h> using namespace std; #define F first #define S second #define all(x) x.begin(),x.end() typedef long long ll; #define INF 9999999999999999 #define pb push_back /* ll seg[2000000]; void build(int l,int r,int idx) { if(l==r) { seg[idx]=h[l]; return; } build(l,(l+r)/2,idx*2); build((l+r)/2,r,idx*2+1); seg[idx]=max(seg[idx*2],seg[idx*2+1]); } */ vector<long long> minimum_costs(vector<int> H, vector<int> L,vector<int> R) { ll Q=L.size(); ll N=H.size(); vector<ll>C(Q,INF); vector<vector<ll> >v(N,vector<ll>(N,0)); for(int i=0;i<N;i++) { ll maxi=-1; for(int c=i;c>=0;c--) { maxi=max(maxi,(ll)H[c]); v[i][c]=((c==i)?0:v[i][c+1])+maxi; } maxi=H[i]; for(int c=i+1;c<N;c++) { maxi=max(maxi,(ll)H[c]); v[i][c]=v[i][c-1]+maxi; } } for(int i=0;i<Q;i++) for(int j=L[i];j<=R[i];j++) { //cout<<v[j][L[i]]<<' '<<v[j][R[i]]<<'\n'; C[i]=min(C[i],v[j][L[i]]+v[j][R[i]]-H[j]); } return 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...