#include<stdio.h>
#include<stdlib.h>
#define SIZE 100
static int data[SIZE];
static void build_data(void)
{
for(int c=0;c<SIZE;c++)
{
int n=rand()%9;
data[c]=1;
while(n--)
{
data[c]*=2;
}
}
}
int data1[9]={1,2,4,8,16,32,64,128,256};
int time=0;
int ge[267];
void jishu()
{
for(int i=0;i<SIZE;i++)
{
ge[data[i]]++;
}
}
int main()
{
for(int l=0;l<10;l++)
{
time=0;
build_data();
jishu();
while(1)
{
int flag=0;
for(int i=7;i>=0;i--)
{
if(ge[data1[i]]>=2)
{
flag=1;
ge[data1[i+1]]=ge[data1[i+1]]+ge[data1[i]]/2;
ge[data1[i]]=ge[data1[i]]-ge[data1[i]]/2*2;
}
}
if(flag==1)
time++;
else
break;
}
printf("%d\n",time);
}
return 0;
}