Submission #624802

#TimeUsernameProblemLanguageResultExecution timeMemory
624802Icebear16Meetings (IOI18_meetings)C++14
19 / 100
5574 ms755676 KiB
#include "meetings.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(a) a.size()
vector<long long> minimum_costs(vector<int> H, vector<int> L,vector<int> R) {
  	int Q = L.size();
  	int n = H.size();
 	int adj[n][n];
  	vector<long long> C(Q);
  	for(int i=0;i<n;i++){
		adj[i][i]=H[i];
  		for(int k=i-1;k>=0;k--){
  			adj[i][k]=max(adj[i][k+1],H[k]);
		  }
  		for(int k=i+1;k<n;k++){
  			adj[i][k]=max(adj[i][k-1],H[k]);
		  }
	}
	long long dj[n][n];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			dj[i][j]=adj[i][j];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=1;j<n;j++){
			dj[i][j]+=dj[i][j-1];
		}
	}
// 	int rt[n][n], lt[n][n];
//	for(int i=0;i<n;i++){
//		for(int j=0;j<n;j++){
//			cout<<dj[i][j]<<" ";
//		}
//		cout<<endl;
//	}
	for(int i=0;i<Q;i++){
  		long long ans=1e18;
		for(int j=0;j<n;j++){
			if(L[i]==0){
				ans=min(ans,dj[j][R[i]]);
			}else{
				ans=min(ans,dj[j][R[i]]-dj[j][L[i]-1]);
			}
		}
		C[i]=ans;
	}
  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...