显示代码纯文本
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
/*
读错题,如果没有空的单人桌,他就坐在一张空的双人桌旁。
如果还没有空的双人桌,他就坐在一张被一个人占了的双人桌旁。
也就是说,空的双人桌优先级高于坐了一个人的桌子;
*/
inline int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+c-'0';c=getchar();}
return x*f;
}
const int maxn=200010;
int n;
int dan,shuang;
int ans=0;
int vis;
int main(){
freopen("RT.in","r",stdin);
freopen("RT.out","w",stdout);
n=read();dan=read();shuang=read();
vis=shuang;
shuang*=2;
for(int i=1;i<=n;i++){
//cout<<dan<<" "<<shuang<<endl;
int c=read();
if(c==1){
if(dan){
dan--;
continue;
}
if(shuang&&vis){
shuang--;
vis--;
continue;
}
if(shuang&&!vis){
shuang--;
continue;
}
ans++;
continue;
}
if(c==2){
if(shuang&&shuang>=2&&vis){
shuang-=2;
continue;
}
ans+=2;
continue;
}
}
printf("%d\n",ans);
return 0;
}