社区讨论

萌新,刚学,不会,求助

P4086[USACO17DEC] My Cow Ate My Homework S参与者 6已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@mi86fi6b
此快照首次捕获于
2025/11/21 09:23
4 个月前
此快照最后确认于
2025/11/21 09:23
4 个月前
查看原帖
90分,最后一个点wa了
CPP
#include<iostream>
#include<cstring>
#include<algorithm>
#include<stdio.h>
#define MAXN 188888
using namespace std;
int pmin[MAXN],psum[MAXN],a[MAXN];
int main()
{
	int i,j,n,x;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	pmin[n+1]=0x3f3f3f3f;
	for(int i=n;i>=1;i--){
		pmin[i]=min(pmin[i+1],a[i]);
		psum[i]=psum[i+1]+a[i];
	}
	pmin[n+1]=0;
	double maxx=0;
	for(int i=1;i<=n;i++){
		if(n-i+1==0) continue;
	//	cout<<psum[i]<<" "<<pmin[i]<<" "<<(double)((double)psum[i]-(double)pmin[i])/(double)(n-i)<<endl;
		if(maxx<(double)((double)psum[i]-(double)pmin[i])/(double)(n-i+1)){
			maxx=(double)((double)psum[i]-(double)pmin[i])/(double)(n-i+1);
//			x=i;
		}
	}
	for(int i=1;i<=n-2;i++){
		if(n-i+1==0) continue;
	//	cout<<maxx<<" "<<(double)((double)psum[i]-(double)pmin[i])/(double)(n-i+1)<<endl;
		if(maxx<=(double)(((double)psum[i]-(double)pmin[i])/(double)(n-i+1))){
			cout<<i-1<<endl;
		}
	}
//	cout<<x-1<<endl;
	return 0;
}
谢谢各位大佬

回复

8 条回复,欢迎继续交流。

正在加载回复...