Submission #823347

#TimeUsernameProblemLanguageResultExecution timeMemory
823347TrumlingMeetings (IOI18_meetings)C++14
0 / 100
1 ms212 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 99999999999999999 #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, std::vector<int> L, std::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==N)?0:v[i][c+1])+maxi; } maxi=H[i]; for(int c=i+1;c<=N-1;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++) C[i]=min(C[i],v[j][L[i]]+v[j][R[i]]); 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...