Codeforces Round #622 C1. Skyscrapers (easy version)

https://codeforces.com/contest/1313/problem/C1

// 构造一个单顶(峰)的数组,并且sum最大 
// O(N^2)


#include<bits/stdc++.h>
using namespace std;
 
int main() {
	int n;
	vector<int> v,ans;
	long long m=-1;
	cin>>n;
	v.resize(n);
	for(int i=0;i<n;i++)cin>>v[i];
	for(int i=0;i<n;i++){
		vector<int>a=v;
		long long h=0;
		for(int j=i+1;j<n;j++)a[j]=min(a[j],a[j-1]);
		for(int j=i-1;j>=0;j--)a[j]=min(a[j],a[j+1]);
		for(int j=0;j<n;j++)h+=a[j];
		if(h>m){
			m=h;
			ans=a;
		}
	}
	for(int&x:ans)cout<<x<<" ";
	return 0;
}
posted @ 2022-03-22 00:26  墨鳌  阅读(21)  评论(0编辑  收藏  举报