第二十二个测试点wa,96分大佬们求助
查看原帖
第二十二个测试点wa,96分大佬们求助
291276
吟殇楼主2020/7/20 13:20
#include <bits/stdc++.h>
using namespace std;
int n,m,p1,ans;
long long c[10000000],d,t,s1,s2,minn=0x7ffffff;
inline long long read()
{
  int s=0,w=1;
  char ch=getchar();
  while(ch<'0'||ch>'9')
  {
    if(ch=='-')w=-1;
    ch=getchar();
  }
  while(ch>='0'&&ch<='9') 
  {
  	s=s*10+ch-'0';
	ch=getchar();
  }
  return s*w;
}
int main()
{
    n=read();
    for(int i=1;i<=n;i++) c[i]=read();
    m=read();
	p1=read();
	s1=read();
	s2=read();
    c[p1]+=s1;
    for(int i=1;i<m;i++) d+=c[i]*(m-i);
    for(int i=m+1;i<=n;i++) t+=c[i]*(i-m);
    int L=1,R=n+1,tmp;
    while(L<R)
	{
        int mid=(L+R)/2;
        tmp=d+s2*(m-mid); 
        if(abs(tmp-t)<=minn)
		{
			ans=mid;
			minn=abs(tmp-t);
		}
        if(tmp<=t)R=mid;
        else L=mid+1;
    }
    printf("%d\n",ans);
    return 0;
}
2020/7/20 13:20
加载中...