semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	int x,i=0,j=0,m=1,n=1,y,t=1,a[10]={0},b[10]={0};
	scanf("%d%d",&x,&y);
	a[0]=x;b[0]=y;
	while(a[i]!=1)
	{
		if(a[i]%2==0)
		a[i+1]=a[i]/2;
		else 
		a[i+1]=(a[i]-1)/2;
		i++;m++;
	}
    while(b[j]!=1)
	{
		if(b[j]%2==0)
		b[j+1]=b[j]/2;
		else 
		b[j+1]=(b[j]-1)/2;
		j++;n++;
	}
	if(m>=n)
	{
		for(j=0;j<n;j++)
		{
			for(i=0;i<m;i++)
				if(a[i]==b[j])
				{
					printf("%d\n",a[i]);t=0;
					break;
				}
				if(t==0)
					break;
		}
	}
	else 
		for(i=0;i<m;i++)
		{ 
			for(j=0;j<n;j++)
				if(b[j]==a[i])
				{
					printf("%d\n",b[j]);t=0;
					break;
				}
				if(t==0)
					break;
		}
}
void main()
{
	int a[600],b[600];
	int na,nb;
	int i;

	scanf("%d %d",&a[0],&b[0]);
	if (a[0]!=1 && b[0]!=1)
	{
		for (i=0;;i++)
		{
		 a[i+1]=a[i]/2;
		 if (a[i+1]==1)
		{
			na=i+1;
			break;
		}
		}
	    for (i=0;;i++)
		{
		 b[i+1]=b[i]/2;
		if (b[i+1]==1)
		{
			nb=i+1;
			break;
		}
		}
	    for(i=0;;i++)
		{
		 if (a[na]==b[nb])
		 {
			na=na-1;
			nb=nb-1;
		 }
		 else
		 {
			printf("%d",a[na+1]);
			break;
		 }
		}
	}
	else
		printf("1");
}
int main()
{
	int x, y;
	int i, j;
	scanf("%d%d",&x,&y);
	while (x != y)
	{
		if (x > y)
			x /= 2;
		else if (x < y)
			y /= 2;
	}
	printf("%d",x);
	return 0;
}
void main()
{
	int i,j,x,y,a[500]={0},b[500]={0};
	scanf("%d %d",&x,&y);
	a[0]=x;b[0]=y;
	for(i=1;a[i-1]>1;i++)
	{
		if(a[i-1]%2==0)
		{
			a[i]=a[i-1]/2;
		}
		else
			a[i]=(a[i-1]-1)/2;
	}
	for(j=1;b[j-1]>1;j++)
	{
		if(b[j-1]%2==0)
		{
			b[j]=b[j-1]/2;
		}
		else
			b[j]=(b[j-1]-1)/2;
	}
	for(i=0;a[i];i++)
	{
		for(j=0;b[j];j++)
			if(a[i]==b[j])
			{
				printf("%d",a[i]);
				break;
			}
		if(a[i]==b[j])
			break;
	}	
}
int x1,y1;
int a1[100];
int a2[100];
int max(int a,int b)
{
	if(a>=b) return a;
	else return b;
}
void find(int n)
{
	int i,j,k;
	for(j=0;;j++)
	{
		if(power(2,j+1)>n&&power(2,j)<=n)
		{
			x1=j;
			break;
		}
	}
}
int power(int a,int b)
{
	int p,s=1;
	for(p=0;p<b;p++)
		s=s*a;
	return s;
}
int main()
{
	int n1,n2,i,j,o,t1,t2;
	scanf("%d %d",&n1,&n2);
	find(n1);
	t1=x1;
	for(i=x1;i>=0;i--)
	{
		a1[i]=n1;
		y1=n1-power(2,i);
		if(n1%2==0) o=y1/2+power(2,i-1);
		else o=(y1+1)/2+power(2,i-1);
		n1=n1-o;
	}
	find(n2);
	t2=x1;
	for(i=x1;i>=0;i--)
	{
		a2[i]=n2;
		y1=n2-power(2,i);
		if(n2%2==0) o=y1/2+power(2,i-1);
		else o=(y1+1)/2+power(2,i-1);
		n2=n2-o;
	}
	for(i=max(t1,t2);i>=0;i--)
	{
		if(a2[i]==a1[i])
		{
			printf("%d\n",a1[i]);
			break;
		}
	}
	return 0;
}
void main()
{ int i=0,x[15],y[15],a,j=0;
 scanf("%d %d",&x[0],&y[0]);
 for (i=0;x[i]>1;i++)
	 x[i+1]=x[i]/2;
 a=i;
 for (i=0;;i++)
 { y[i+1]=y[i]/2;
   for (j=0;j<=a;j++)
     if (x[j]==y[i]) break;
   if (x[j]==y[i]) break;
 }
 printf("%d\n",x[j]);
}