比赛 20241126 评测结果 AAAAAAAAAA
题目名称 小b爱实数 最终得分 100
用户昵称 小金 运行时间 0.613 s
代码语言 C++ 内存使用 15.96 MiB
提交时间 2024-11-26 11:36:40
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
struct dian{
	int x;
	double y;
}d[1000010];
double f,s[1000010],ans=1e9;
char str[1000010];
int n,bj;
bool cmp(dian a,dian b)
{
	return a.y<b.y;
}
int main()
{
	freopen("changgao_real.in","r",stdin);
	freopen("changgao_real.out","w",stdout);
	scanf("%lf",&f);
	scanf("%s",str+1);
	n=strlen(str+1);
	for(int i=1;i<=n;i++)
	{
		s[i]=str[i]-'0'+s[i-1];
	}
	for(int i=1;i<=n;i++)
	{
		d[i].y=s[i]-(double)i*f;
		d[i].x=i;
	}
	sort(d,d+n+1,cmp);
	bj=n;
	for(int i=1;i<=n;i++)
	{
		double now=fabs((d[i].y-d[i-1].y)/(d[i].x-d[i-1].x));
		if(min(d[i].x,d[i-1].x)<bj)
		{
		    if(now-1e-6<ans)
			{
				ans=now;
				bj=min(d[i].x,d[i-1].x);
			} 
		}
        else if(now+1e-6<ans)
		{
			ans=now;
			bj=min(d[i].x,d[i-1].x);
		}
	}
	printf("%d",bj);
	return 0;
}