因为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; }