小a与"204"(牛客)

原题

公式

中间数字与变量之间乘号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;
  }
}
posted @ 2019-01-22 20:52  baccano!  阅读(53)  评论(0编辑  收藏