原题
![]()
公式
中间数字与变量之间乘号bug省略可能看着有点别扭例如8x2为8*x2
首先设扫一遍后0的个数为x0 2的个数为x2 4的个数为x4
①如果x0=x4
ans=32*x4+4
②如果x0>x4
定义now为x0-x4+1
(1)如果now>x2
ans=32x4+8x2
否则
ans=32x4+(2now-1)*4
③如果x0<x4
定义now为x4-x0
(1)如果now>x2
ans=32x0+8x2+16
否则
ans=32x0+(2now-1)*4+16
代码
#include <bits/stdc++.h>
using namespace std;
int bk[10];
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n,t;
  cin>>n;
  while(n--)
  cin>>t,bk[t]++;
  if(bk[0]==bk[4])
  cout<<32*bk[4]+4;
  else if(bk[0]>bk[4])
  {
    int now=bk[0]-bk[4]+1;
    if(now>bk[2])
    cout<<32*bk[4]+bk[2]*8;
    else
    cout<<32*bk[4]+(2*now-1)*4;
  }
  else
  {
    int now=bk[4]-bk[0];
    if(now>bk[2])
    cout<<32*bk[0]+8*bk[2]+16;
    else
    cout<<32*bk[0]+(2*now-1)*4+16;
  }
}