Submission #285022

#TimeUsernameProblemLanguageResultExecution timeMemory
285022keta_tsimakuridzeDischarging (NOI20_discharging)C++14
47 / 100
1089 ms8440 KiB
#include<bits/stdc++.h>
using namespace std;
long long n,k,a[1000006],mx,dp[1505],F;
int main(){
	cin>>n;
	a[0]=1e10;
	for(k=1;k<=n;k++){
		cin>>a[k];
		if(a[k]>a[k-1]) F=1;
	}
	
	if(!F) cout<<a[1]*n;else{
	for(k=1;k<=n;k++){
		dp[k]=1e16;
		mx=0;
		for(int i=k;i>=1;i--){
			mx=max(mx,a[i]);
			dp[k]=min(dp[k],dp[i-1]+(n-i+1)*mx);
		}
	}
	cout<<dp[n];
}}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...