题目链接:有一个餐厅,他有a张一人座位,b张双人座位,有n组人来这个餐厅,每组人都是一个或两个人。对于一个人来说,如果有单人座就优先分配单人座,如果没有,有双人座就分配双人座,若没有单独的双人座,就和他人共享,如果在没有就拒绝为他们服务,对于双人来说,有双人座就接收,否则拒绝,按输入接纳这n组人,问你一共拒绝了多少人
解析:直接按照题意模拟就好
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
int n,a,b,x;
scanf("%d %d %d",&n,&a,&b);
int ans = 0,c = 0;
for(int i=0;i<n;i++)
{
scanf("%d",&x);
if(x==1)
{
if(a>0)
a--;
else if(b>0)
{
b--;
c++;
}
else if(c>0)
c--;
else
ans++;
}
else
{
if(b>0)
b--;
else
ans+=2;
}
}
printf("%d\n",ans);
return 0;
}
/*
4 1 2
1 1 1 2
存在你把两个双人座都给单人坐了,双人就被拒绝了
*/