题目 2693: 蓝桥杯2022年第十三届决赛真题-卡牌 C++

#include
#include 
using namespace std;
    long long int m,ans=0;//注意m的范围比较大,如果只是定义int的话会导师运行错误
    int a[210000],b[210000],n;//题目中n的范围在int的范围之内
    
inline int func()
{
    for(int i=1;i<=n;i++)
    {
        if(a[i]==0)
        {
            if(m==0) return 0;
            else if(b[i]!=0)  {b[i]--;m--;}
            else return 0;
        }
        else
        a[i]--;
    }
    return 1;
    
}
int main()
{
    //加速输入输出,减少运行时间
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    cin>>n>>m;
    for(int i=1;i<=n;i++)  cin>>a[i];
    for(int i=1;i<=n;i++)  cin>>b[i];
    
    while(true){
        if(!func())break;
        ans++;
    }
    cout<

需要自定义一个函数,用来判断是否正确运行了一次循环,如果是的话则ans++,否则跳出来.

你可能感兴趣的:(蓝桥杯,c++,算法)