【洛谷 P4086】【暴力】 My Cow Ate My Homework S
题目
解题思路
因为吃掉的一定是前k道
我们可以从后往前做
就可以累积到tm的和,以及最小值,由此得出平均值
PS.不止一个输出时要升序 我以为只有一个,😄
代码
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double ans;
int n,m,da[100010],a[100100];
long long sum;
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&a[i]);
sum=a[n]+a[n-1];
m=min(a[n],a[n-1]);
ans=sum-m;
da[1]=n-2;
da[0]=1;
for (int i=n-2;i>1;i--)
{
sum+=a[i];
m=min(m,a[i]);
if (1.0*(sum-m)/(n-i)-ans>0)
{
ans=1.0*(sum-m)/(n-i);
da[1]=i-1;
da[0]=1;
}
else if (1.0*(sum-m)/(n-i)-ans==0)
da[++da[0]]=i-1;
}
for (int i=da[0];i>0;i--)
printf("%d\n",da[i]);
return 0;
}