社区讨论

92求助

P5016[NOIP 2018 普及组] 龙虎斗参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mi7x1t3j
此快照首次捕获于
2025/11/21 05:01
4 个月前
此快照最后确认于
2025/11/21 05:01
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long mi=1e19;
struct ss
{
    long long sum;
    long long  jl,r;
}c[100001];
long long ab(long long a)
{
    if(a<0)
        return -a;
    return a;
}
long long n,m,p1,s1,s2,p2,a,b;
int main()
{
    scanf("%lld",&n);
    for(long long i=1;i<=n;i++)
    {
        scanf("%lld",&c[i].r);
    }
    scanf("%lld%lld%lld%lld",&m,&p1,&s1,&s2);
    c[p1].r+=s1;
    for(long long i=1;i<m;i++)
    {
        c[i].jl=m-i;
        c[i].sum=c[i].jl*c[i].r;
        a+=c[i].sum;
    }   
    for(long long i=m+1;i<=n;i++)
    {
        c[i].jl=i-m;
        c[i].sum=c[i].jl*c[i].r;
        b+=c[i].sum;
    }
    if(a==b)
    	printf("%lld",m);
    if(a<b)
    {
    	for(long long i=1;i<=m;i++)
    	{
    		if(ab(a+c[i].jl*s2-b)<mi)
    		{
    			mi=ab(a+c[i].jl*s2-b);
    			p2=i;
			}
		}
	}
	else
	{
	 	for(long long i=m;i<=n;i++)
    	{
    		if(ab(b+c[i].jl*s2-a)<mi)
    		{
    			mi=ab(b+c[i].jl*s2-a);
    			p2=i;
			}
		}
	}
	printf("%lld",p2);
}

回复

0 条回复,欢迎继续交流。

正在加载回复...