刚才的A
  • 板块学术版
  • 楼主AAA404
  • 当前回复8
  • 已保存回复8
  • 发布时间2023/1/14 18:04
  • 上次更新2023/10/24 04:16:02
查看原帖
刚才的A
723198
AAA404楼主2023/1/14 18:04

我是真的没想到我会被A题难住qwq

#include<bits/stdc++.h>
using namespace std;
int n,m,a[100001],ans=0x3f3f3f3f;
double high=0x7ffffff,low;
inline int read()
{
	char ch=getchar();int s=0,w=1;
	while(ch<'0' || ch>'9'){if(ch=='-')w=-1;ch=getchar();}
	while(ch>='0' && ch<='9'){s=s*10+ch-48;ch=getchar();}
	return s*w;
}
int main()
{
    n=read(),m=read();
    for(int i=1;i<=n;i++)
    {
        a[i]=read();
    }
    for(int i=1;i<=n;i++)
    {
        if(a[i]!=1)
        {
            high=min((double)(m*1.0/i/(a[i]-1)),high);
            low=max((double)(m*1.0/i/a[i]),low);
        }
        else
        {
            low=max((double)(m*1.0/i),low);
        }
    }
    if(high==0x7ffffff && low==0)
    {
        cout<<"xiaogougege";
    }
    else
    {
        cout<<(int)(ceil(high-low));
    }
    return 0;
}

思路是用不等式确定上界和下界,在去减

2023/1/14 18:04
加载中...