ACM 训练日志记录 · 思考 · 成长 提交 / 修改记录
郭一鸣 / 题目列表训练档案
导出

2252A Codeforces Round 1115 (Div. 2)

来源:Codeforces ★ 800

本题活力0.18按难度、完成结果与训练证据估算

算法如山行则将至

题目描述

求调整法术牌顺序后最大总伤害,使连续相同牌后所有牌伤害为0。

代码

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        int num[1001]={0};
        long long ans=0;
        for(int i=1;i<=n;i++)
        {
            int x;cin>>x;
            num[x]++;
            ans+=x;
        }
        int maxnum=0,maxnumvalue=0;
        for(int i=1;i<=1000;i++)
        {
            if(num[i]>maxnum)
            {
                maxnum=num[i];maxnumvalue=i;
            }
        }
        int other;other=n-maxnum;
        if(maxnum>other+2)
        {
            int shenyu=maxnum-(other+2);
            ans-=1LL*shenyu*maxnumvalue;
        }
        cout<<ans<<endl;
    }
    return 0;
}