首页 > 其他 > 详细

CSU-暑假集训题 B - Parity Alternated Deletions CodeForces - 1144B

时间:2019-07-27 15:56:52      阅读:93      评论:0      收藏:0      [点我收藏+]

题目链接:http://codeforces.com/problemset/problem/1144/B

思路:

就是将序列分奇数和偶数,如果个数相等或相差一个,就没有剩余,不然就将多的奇数或者偶数从小到大排序,多的个数减去少的个数再减1,输出这些个数的和。

AC代码

#include<iostream>
#include<algorithm>
using namespace std;
const int MAX=1e6+10;
long long a[MAX],b[MAX];
int main()
{
    int n;
    cin>>n;
    long long num,count1=0,count2=0;
    long long sum=0;
    for(int i=0;i<n;i++)
    {
        cin>>num;
        if(num%2==1)a[++count1]=num;
        else b[++count2]=num;
    }
    if(count1==count2)
    {
        cout<<0<<endl;
        return 0;
    }else if(count1>count2)
    {
        sort(a+1,a+count1+1);
        for(int i=1;i<count1-count2;i++)sum+=a[i];
    }else{
        sort(b+1,b+count2+1);
        for(int i=1;i<count2-count1;i++)sum+=b[i];
    }
    cout<<sum<<endl;
    return 0;
}

 

CSU-暑假集训题 B - Parity Alternated Deletions CodeForces - 1144B

原文:https://www.cnblogs.com/xlbfxx/p/11255393.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!