Codeforces 1154D - Walking Robot - [貪心]

題目連接:https://codeforces.com/contest/1154/problem/Dc++

 

題解:spa

貪心思路,沒有太陽的時候,優先用可充電電池走,萬不得已才用普通電池走。有太陽的時候,若是可充電電池可以充一格電,就用普通電池跑(讓可充電池充電),不然就用可充電電池走。code

 

AC代碼:blog

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;

int n,a,b;
bool s[maxn];

int main()
{
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++) scanf("%d",&s[i]);
    int cnt=0, x=a, y=b;
    for(int i=1;i<=n;i++)
    {
        if(s[i]==0) //no sun
        {
            if(y>0) y--, cnt++;
            else if(x>0) x--, cnt++;
            else break;
        }
        else
        {
            if(x>0 && y<b) x--, y++, cnt++;
            else if(y>0) y--, cnt++;
            else break;
        }
    }
    cout<<cnt<<endl;
}
相關文章
相關標籤/搜索