http://noi.openjudge.cn/ch0105/37/
/*
1.5编程基础之循环控制 37 雇佣兵
http://noi.openjudge.cn/ch0105/37/
https://blog.csdn.net/weixin_46151302/article/details/109206991
*/
#include <bits/stdc++.h>
using namespace std;
int used;
int main( void )
{
//雇佣兵的体力最大值为M,初始体力值为0、战斗力为N、拥有X个能量元素。
int m,n,x;
//5 2 10
cin>>m>>n>>x;
while( x>0)
{
//当雇佣兵的体力值恰好为M时,才可以参加一个为期M天的战斗期,战斗期结束体力值将为0。
//在同一个战斗期内,雇佣兵每连续战斗n天,
//战斗力就会上升1点,n为当前战斗期开始时的战斗力。
//每个能量元素恢复的体力值不超过当前的战斗力。每个能量元素只能使用一次
if(m%n==0)
{
used=m/n;
}
else
{
used=m/n+1;
}
if( used >x )
{
break;
}
x-=used;
n+=m/n;
}
//6
cout<<n<<endl;
return 0;
}