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;
}