题目: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;
}