僱傭兵

005:僱傭兵

總時間限制: 

1000ms

 

內存限制: 

65536kB

描述

僱傭兵的體力最大值爲M,初始體力值爲0、戰鬥力爲N、擁有X個能量元素。

當僱傭兵的體力值恰好爲M時,纔可以參加一個爲期M天的戰鬥期,戰鬥期結束體力值將爲0。在同一個戰鬥期內,僱傭兵每連續戰鬥n天,戰鬥力就會上升1點,n爲當前戰鬥期開始時的戰鬥力。

一個戰鬥期結束後,僱傭兵需要用若干個能量元素使其體力恢復到最大值M,從而參加下一個戰鬥期。每個能量元素恢復的體力值不超過當前的戰鬥力。每個能量元素只能使用一次。

請問:僱傭兵的戰鬥力最大可以到達多少。

輸入

一行包括三個整數M、N、X,相鄰兩個整數之間用單個空格隔開。M、N、X均爲不超過10000的正整數。

輸出

輸出一個整數,爲僱傭兵的最大戰鬥力。

樣例輸入

5 2 10

樣例輸出

6
#include <iostream>
using namespace std;

int main()
{
	int M=0,N=0,X=0;
	cin>>M>>N>>X;
	while((X>0)&&(M>=N))
	{
		if(M%N==0)
		{
			X-=M/N;
		}
		else
		{
			X=X-M/N-1;
		}
		N+=M/N;
		if(M<N) break;
		if(X*N<M) break;
	}
	cout<<N<<endl;

	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章