记录编号 |
597341 |
评测结果 |
AAAAAAAAAA |
题目名称 |
小b爱实数 |
最终得分 |
100 |
用户昵称 |
wdsjl |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.544 s |
提交时间 |
2024-11-26 20:09:19 |
内存使用 |
13.91 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
double f,ans=1e9;
int a[1000010],n,L;
char s[1000010];
struct P{
int x;double y;
}p[1000010];
bool cmp(P a,P b){
return a.y<b.y;
}
int main(){
freopen("changgao_real.in","r",stdin);
freopen("changgao_real.out","w",stdout);
scanf("%lf%s",&f,s+1);
n=L=strlen(s+1);
for(int i=1;i<=n;++i){
a[i]=a[i-1]+s[i]-48;
p[i]={i,f*i-a[i]};
}
sort(p,p+n+1,cmp);
for(int i=0;i<n;++i)
if(min(p[i].x,p[i+1].x)<L){
if(fabs((p[i].y-p[i+1].y)/(p[i].x-p[i+1].x))-1e-6<ans){
ans=fabs((p[i].y-p[i+1].y)/(p[i].x-p[i+1].x));
L=min(p[i].x,p[i+1].x);
}
}else {
if(fabs((p[i].y-p[i+1].y)/(p[i].x-p[i+1].x))+1e-6<ans){
ans=fabs((p[i].y-p[i+1].y)/(p[i].x-p[i+1].x));
L=min(p[i].x,p[i+1].x);
}
}
cout<<L;
}