萌新不会鸭 请大佬萌指正
查看原帖
萌新不会鸭 请大佬萌指正
347979
wyzhf楼主2020/8/24 09:37
#include <iostream>
using namespace std;
long long a,b,c,i=1;
int main(){

    cin>>a>>b>>c;
    if(a==b){//如果A、B材料相等时
        c/=2;//C块钱平分一下
        a+=c;//用A材料量加上买的量(A或B加都一样)
        while(a)
        {
            a-=i;//减去每一层要的材料(因为需要的A、B都是一样,拿出A做例就行)
            i++;//每一层需要的叠加
        }
        cout<<i-1;//输出层
    }
    else if(a>b){//如果A>B材料
        long long d=a-b;//算出AB差距
        if(c<=d)//C块钱<AB差距
        {
            b += c;//钱全部买B
            while(b)
            {
                b-=i;//用B材料来算减去每一层要的B材料
                i++;//层数叠加
            }
            cout<<i-1;//输出层数
        }
        else//如果C快钱?>AB差距
        {
            c-=d;//现把差距补上
            c/=2;//再把剩下的钱平分
            a+=c;//用A去加上平分C钱买的A
            while(a)
            {
                a-=i;//用A材料减去每一层需要的A材料
                i++;//层数叠加
            }
            cout<<i-1;//输出层数
        }
    }
    else if(a<b){//这个情况与上面的相反的只有是A材料的量<B材料的量
        int d=b-a;
        if(c<=d)
        {
            a+=c;
            while(a)
            {
                a-=i;
                i++;
            }
            cout<<i-1;
        }
        else
        {
            c-=d;
            c/=2;
            b+=c;
            while(b)
            {
                b-=i;
                i++;
            }
            cout<<i-1;
        }
    }
    return 0;
}

//大佬萌康康哪里出问题了

蟹蟹了喔

2020/8/24 09:37
加载中...