题目描述:
输入:
样例输入
5 2 1 //n b a
0 1 0 1 0 //0表示黑暗,1表示阳光下
样例输出
5
题意:有一段路长度为n,电池b ,和蓄电池 a,0表示黑暗,1表示阳光下,在阳光下蓄电池可以充电但是必须使用电池b才可以行走;
求能走的最长路(合理安排 电池的使用位置)
#include <iostream>
using namespace std;
int main()
{
int n,b,a;
int k,sum=0;
int m[99999];
while(cin >> n >> b >> a)//b是电池,a是蓄电池能充电
{
k=a;
sum=0;
for(int i=0; i<n; i++)
{
cin >> m[i];
}
for(int i=0; i<n; i++)
{
if(m[i]==0)//0是黑暗
{
if(a>0)
{
a--;
sum++;
}
else if(b>0)
{
b--;
sum++;
}
else
break;
}
else//阳光下
{
if(a==k)//看蓄电池能不能充电
{
a--;
sum++;
}
else if(b>0)
{
b--;
a++;
sum++;
}
else if(a>0)
{
a--;
sum++;
}
else
break;
}
}
cout << sum << endl;
}
return 0;
}
哈哈哈哈