天天看點

【New AKOJ】1158: 防禦飛彈

1158: 防禦飛彈

Time Limit: 1 Sec   Memory Limit: 128 MB

Submit: 4   Solved: 2

點選打開連結

Description

某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截 系統有一個缺陷:雖然它的第一發炮彈能夠達到任意的高度,但是以後每一發炮彈都不能高于前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由于該系統還在試 用階段,是以隻有一套系統,是以有可能不能攔截所有的飛彈。

Input

最多20個整數,分别表示飛彈依次飛來的高度(雷達給出高度資料是不大于30000的正整數)

Output

整數M。表示:這套系統最多能攔截 M 枚飛彈.

Sample Input

300 250 275 252 200 138 245

Sample Output

5

HINT

Source

#include<iostream>
using namespace std;
int Add(int *a)
{
	a[0]++;
	for(int i=0;i<100;i++)
	{
		if(a[i]>=2)
		{a[i]-=2;a[i+1]++;}
	}
}

int main()
{
	int a[101]={0};
	int h[100]={0},x=0;
	while(cin>>h[x])
	{
		x++;
	}
      int max=0;
      while(a[x]==0)
      {
      	int b[x],k=0;
      	for(int i=0;i<x;i++)
      	{
      		if(a[i])
      		{b[k]=h[i];k++;}
		}
		
		int flag=1;
		for(int i=0;i<k-1;i++)
		{
			if(b[i]<b[i+1])
			{flag=0;break;}
		}
		
		if(flag&&max<k)
		{max=k;}
		Add(a);
	  }
	  cout<<max<<endl;
return 0;
}