1 条题解

  • 0
    @ 2025-8-24 23:00:29

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar abc1234shi
    一定要99啊||要关私信,互关无条件,当且仅当私信后才可互关

    搬运于2025-08-24 23:00:29,当前版本为作者最后更新于2024-07-08 10:38:39,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    我们先将数组进行排序,因为如果从小到大排序到后面其实挺麻烦的,所以我是从大到小排序。因为两个人不能坐相邻的位置,我们要求出要坐几个人,一共有 nn 把椅子,要坐的人数就为 (n+1)/2(n+1)/2 的值向下取整。接下来就将答案加从 a1a_1 一直加到 ana_n。但是注意如果其中有负数,那么说明剩下的数都是负数,如果加上就得不偿失了,所以就停止循环。最后输出答案。

    #include<bits/stdc++.h>
    using namespace std;
    int a[210000];
    long long sum;
    int cmp(int x,int y)
    {
    	return x>y;
    }
    int main() {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
        	cin>>a[i];
    	}
    	sort(a+1,a+n+1,cmp);
    	n=(n+1)/2;
    	for(int i=1;i<=n;i++)
    	{
    		if(a[i]<=0)break;
    		sum+=a[i]; 
    	 } 
    	
    	cout<<sum;
       return 0;
    }
    
    • 1

    信息

    ID
    10497
    时间
    1000ms
    内存
    1024MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者