

因为n%3只有三种结果,0,1和2.当余数为0时,CSC可以做,ans++;当余数为1时,再找到一个余数为2就可以施展魔法,ans++;三个1也可以施展魔法,ans++;余数为2时同理
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int n,m,ans=0,tmp=0;
int a[5]={};
int main()
{
int x,y;
cin>>n;
a[1]=0;
a[2]=0;
ans=0;
for(int i=1;i<=n;i++)
{
cin>>x;
if(x%3)
{
x%=3;
if(x==1)
a[1]++;
else
a[2]++;
}
else
ans++;
}
if(a[1]<=a[2])
{
ans+=a[1];
a[2]-=a[1];
ans+=a[2]/3;
}
else
{
ans+=a[2];
a[1]-=a[2];
ans+=a[1]/3;
}
cout<<ans<<endl;
return 0;
}