题目背景
pigstd 要去造房子了。
题目描述
pigstd 有 a 个 A 材料和 b 个 B 材料,造第 i 层楼需要 i 个 A 材料与 i 个 B 材料。
但是 pigstd 觉得房子不够高,于是他拿出了 c 块钱,每块钱都可以用来买 1 个 A 材料或者 111 个 B 材料。
现在 pigstd 想知道,他最多能建多少层楼的房子。
输入格式
第一行三个整数 a,b,c。
输出格式
一行一个整数,表示 pigstd 最多能建多少层楼的房子。
输入
1 2 3
输出
1 5 3
思路
那么我们循环每一层楼,如果当前这层楼的材料不够了,就买够材料,如果钱不够了,那就不算了
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long a,b,c,i;
cin>>a>>b>>c;
for (i=1;a-i>=0&&b-i>=0;i++)
{
a-=i;
b-=i;
if (a-i-1<0)
{
if (c>=i+1-a)
{
c-=i+1-a;
a=i+1;
}
}
if (b-i-1<0)
{
if (c>=i+1-b)
{
c-=i+1-b;
b=i+1;
}
}
}
cout<<i-1<<endl;
}