社区讨论

求助为什么是60分

P2672[NOIP 2015 普及组] 推销员参与者 6已保存回复 6

讨论操作

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

当前回复
6 条
当前快照
1 份
快照标识符
@mi6giqe7
此快照首次捕获于
2025/11/20 04:30
4 个月前
此快照最后确认于
2025/11/20 04:30
4 个月前
查看原帖
CPP
#include<iostream>
using namespace std;
int n,ans,maxs;
int a[100001],s[100001],flag[1001];
void read()
{
    int i,j,t,max1,qian,hou,x,k1,k2;
    cin>>n;
    for(i=1;i<=n;i++)
    cin>>s[i];
    for(i=1;i<=n;i++)
    cin>>a[i];
    x=1;
    max1=0;
    for(i=1;i<=n;i++)
    {
        if(s[i]*2+a[i]>max1)
        {
            max1=s[i]*2+a[i];
            t=i;
        }
    }
    maxs=s[t];
    flag[t]=1;
    ans=max1;
    cout<<ans<<endl;
    for(x=2;x<=n;x++)
    {
    qian=0;
    for(i=t+1;i<=n;i++)
    if((2*(s[i]-maxs)+a[i]>qian)&&(flag[i]==0))
    {
        qian=2*(s[i]-maxs)+a[i];
        k1=i;//¼¸ÏÂÏòºó×î´óÖµµÄϱêλÖà 
    }
    hou=0;
    for(i=1;i<=t-1;i++)
    if(a[i]>hou&&flag[i]==0)
    {
        hou=a[i];
        k2=i;
    }
    if(qian>hou)
    {
        ans=ans+qian;
        flag[k1]=1;//Ñ¡ÏòǰµÄ 
        cout<<ans<<endl;//´òÓ¡ 
    }
    else{
        ans=ans+hou;
        flag[k2]=1;//Ñ¡ÏòºóµÄ 
        cout<<ans<<endl;
    }
}
}
int main()
{
read();
return 0;
}

回复

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

正在加载回复...