題目連接: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; }