龙虎斗弱鸡求救
  • 板块学术版
  • 楼主snjzlymxl
  • 当前回复5
  • 已保存回复5
  • 发布时间2020/10/29 17:41
  • 上次更新2023/11/5 09:35:09
查看原帖
龙虎斗弱鸡求救
232092
snjzlymxl楼主2020/10/29 17:41

以下是本人代码

只过了五组数据希望大犇帮忙找一下错误在哪,感激不尽

                                      #include<bits/stdc++.h>
                                 #include<algorithm> 

    using namespace std;

    longlongn,m,p1,s1,s2,p2,w1,w2,w3,a[100005],ans,cz=100000000;

    bool q;

    void shuru()
{
	cin>>n;
	
    for(int i=1;i<=n;i++)
		
    cin>>a[i];
	cin>>m>>p1>>s1>>s2;
}

    void bsjisuan()
{
	
    for(int i=1;i<m;i++)
	w1=a[i]*abs(i-m)+w1;
	
    for(int i=m+1;i<=n;i++)
	w2=w2+a[i]*abs(i-m);
	if(p1<m)
	w1=w1+s2*abs(p1-m);
	else
	w2=w2+s2*abs(p1-m);
}

    void paibing()
{
	
             if(w1<w2)
	for(int i=m;i>=1;i--)
	{
	w3=abs(w1+s2*abs(i-m)-w2);
		q=1;
		if(w3<=cz)
		{
			cz=w3;
			q=0;
		}
		if(q==1)
		{
			cout<<i+1;
			break;
		}
	}
	if(w1>w2)
	for(int i=m;i<=n;i++)
	{
		w3=abs(w2+s2*abs(i-m)-w1);
		q=1;
		if(w3<=cz)
		{
			cz=w3;
			q=0;
		}
		if(q==1)
		if(cz==abs(w2+s2*abs(i+2-m)-w1))
		{
			cout<<i-2;
			break;
		}
	}
	if(w1==w2)cout<<m;
}

  int main()

  {
	q=1;
	shuru();
	bsjisuan();
	paibing();
	
    return 0;
  }
  
2020/10/29 17:41
加载中...