原题
公式
中间数字与变量之间乘号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;
}
}