Codeforces Round #565 (Div. 3) B. Merge it!

题目:https://codeforces.com/contest/1176/problem/B
思路:贪心
\(a_i\;mod\;3\) 只有 \(0\)\(1\)\(2\) 三种情况
\(sum\;mod\;3=0\),只有 \(0\)\(1\)\(2\)\(1\)\(1\)\(1\)\(2\)\(2\)\(2\) 四种情况
尽量选择消耗个数少的选择

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    int T;
    scanf("%d",&T);
    int n;
    int a;
    while(T--)
    {
        scanf("%d",&n);
        int ans=0;
        int b1=0;
        int b2=0;
        while(n--)
        {
            scanf("%d",&a);
            if(a%3==0) ans++;
            else if(a%3==1) b1++;
            else if(a%3==2) b2++;
        }
        if(b1<b2) ans+=b1,b2-=b1,ans+=b2/3;
        else ans+=b2,b1-=b2,ans+=b1/3;
        printf("%d\n",ans);
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/c4Lnn/p/12113823.html