题意:
一个饭店有a张单人桌,b张双人座。
然后有n组人来,每组1or2人。双人只能坐双人座。
题解:
卧槽,这题又被hack 了 ,每次第一题被hack我也很无奈啊,每次被hack也是我思维漏洞的体现。。。
考虑一个点,单人优先坐单人桌,否则优先坐空的双人桌,最后考虑有人的双人桌,被hack之后,我睡了才想到只可能这里出错,
第二天交一发果然,
#include<bits/stdc++.h>
#define ll long long
#define mod 1000000007
using namespace std;
const int maxn=2e5+10;
int num[maxn];
int main(){
int n,a,b,c=0;
int ans=0;
scanf("%d %d %d",&n,&a,&b);
for(int i=1;i<=n;++i) scanf("%d",&num[i]);
for(int i=1;i<=n;++i){
if(num[i]==1){
if(a>0)a--;
else if(b>0){
b--;c++;
}
else if(c>0) c--;
else ans+=1;
}
else {
if(b>0) b--;
else ans+=2;
}
}
printf("%d\n",ans);
return 0;
}