semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int i,j,p,changdu1,changdu2,changdu3,m;
	char x[256]={0},y[256]={0},z[513]={0},media[256][256]={0};
	scanf("%s",x);
	scanf("%s",y);
	scanf("%s",z);
	changdu1=strlen(x);
	changdu2=strlen(y);
	changdu3=strlen(z);
	for(i=0;i<changdu1-changdu2+1;i++)
	{
		for(j=0;j<changdu2;j++)
			media[i][j]=x[i+j];
	}
	for(i=0;i<changdu1-changdu2+1;i++)
	{
		if(strcmp(media[i],y)==0)
		{
			p=i;
			break;
		}
	}
	if(i>=changdu1-changdu2+1)
	{
		for(i=0;i<changdu1;i++)
			printf("%c",x[i]);
	}
	else
	{
		strcpy(media[p],z);
		if(p!=0)
		{
			for(i=0;i<p;i++)
				printf("%c",x[i]);
			printf("%s",media[p]);
			if(changdu2>changdu3)m=changdu2;
			else m=changdu3;
			for(i=p+m;i<changdu1;i++)
				printf("%c",x[i]);
			printf("\n");
		}
		else
		{
			printf("%s",media[p]);
			for(i=p+changdu3;i<changdu1;i++)
				printf("%c",x[i]);
			printf("\n");
		}
		
	}
	return 0;
}
main()
{
    char string[256],substr[256],replace[256];
    int i,j,k;
    int m,n;
    scanf("%s\n",string);
    for(i=0;string[i]!='\0';)
    {
        i++;
    }
    m=i;
    scanf("%s\n",substr);
    for(i=0;substr[i]!='\0';)
    {
        i++;
    }
    n=i;
    scanf("%s\n",replace);
    for(i=0;i<m;i++)
    {
        if(string[i]==substr[0])
        {
            for(j=0;j<n;j++)
            {
                if(string[i+j]!=substr[j])break;
            }
            if(j==n)
            {
                for(j=0;j<n;j++)
                string[i+j]=replace[j];
                break;
            }
        }
    }
    printf("%s",string);
}
int main()
{
	char yuan[256]={0}, huan[256]={0}, hou[256]={0};
	int i, e, k, len1, len2, len3, count;
	gets(yuan);
	gets(huan);
	gets(hou);
	len1=strlen(yuan);
	len2=strlen(huan);
	len3=strlen(hou);

    int p=0;
	for(i=0;i<len1-len2+1;i++)
	{
		count=0;
		if(yuan[i]==huan[0])
		{
			for(e=0;e<len2;e++)
				if(yuan[i+e]==huan[e]) count++;
            if(count==len2)
	       	{
         			for(k=0;k<i;k++) printf("%c", yuan[k]);
           			for(k=i;k<len3+i;k++) printf("%c", hou[k-i]);
	          		for(k=i+len2;k<len1;k++) printf("%c", yuan[k]);
	          		p=1;
		         	break;
	       	}
  
		}
 	}
 	
 	if (p==0) printf("%s",yuan);
	return 0;
}
int main()
{
	char a[100],b[100],c[100];
	int i,j,s,k,y;
	gets(a);
	gets(b);
	gets(c);
	for(i=0;i<strlen(a);i++)
	{
		    k=i;
			j=0;
			while(a[k]==b[j] && j<strlen(b))
			{
				k++;
				j++;
			}
			if(j==strlen(b))
			{
                                     y=0;
				for(s=i;s<i+strlen(b);s++)
				{
					a[s]=c[s-i];
					
				}y=1;

			}
			if(y==1) break;
	}
					
printf("%s\n",a);
return 0;
}
int main(){
	char s[256], s1[256], s2[256], ss[20], re[20];
	int i, j, x=0, y=0, a, flag=0;
	gets(s);
	scanf("%s%s", ss, re);
	for(i=0;s[i]!='\0';i++){
		if(s[i]!=ss[0]){
			s1[x]=s[i];
			x++;
		}
		else if(s[i]==ss[0]){
			a=i;
			flag=1;
			for(j=0;ss[j]!='\0';j++){
				if(ss[j]!=s[a]){
					flag=0;
				}
				a++;
			}
			if(flag==0){
				s1[x]=s[i];
				x++;
			}
		}
		if(flag==1){
			s1[x]='\0';
			break;
		}
	}
	if(flag==1){
		for(i+=strlen(ss);s[i]!='\0';i++){
			s2[y]=s[i];
			y++;
		}
	}
	s2[y]='\0';
	if(flag==1){
		printf("%s%s%s", s1, re, s2);
	}
	if(flag==0){
		printf("%s", s);
	}
	return 0;
}
int main()
{
    int i,j,t,x,m,n;
    char s[300],sub[300],re[300];
    gets(s);
    gets(sub);
    gets(re);
    n=strlen(s);
    m=strlen(sub);
    x=strlen(re);
    for (i=0;i<=n-m;i++)
    {
        for (j=0,t=i;j<m;j++)
        {
            if(s[t]==sub[j])   {t++;}
            else break;
        }
        if(j==m) break;
    }
    if (i==n-m+1) {;}
    else
    {
        for (t=i+x;t<n+x-m;t++)
        {
            s[t]=s[t-x+m];
        }
        for (j=i,t=0;j<i+x;j++,t++)
        {
            s[j]=re[t];
        }
    }
    puts(s);
    getchar();
    getchar();
    getchar();
    return 0;
}
int main()
{
	char string[256],substr[256],replace[256];
	int i,j,k,len,len1,len2,m;
	scanf("%s%s%s",string,substr,replace);
	len1=strlen(string);
	len2=strlen(substr);
	for(i=0;i<len1;i++)
	{
		if(substr[0]==string[i])
		{
			len=0;
			for(j=0;j<len2;j++)
			{
				if((substr[j]==string[i+j]) && len<len2) len++;
			}
			if(len==len2)
			{
				for(k=0;k<i;k++) printf("%c",string[k]);
				printf("%s",replace);
				for(k=i+len2;k<len1;k++) printf("%c",string[k]);
				m=1;
			}
		}
		if(m==1) break;
	}
	if(m!=1) printf("%s",string);
	return 0;
}
int main()
{
    int i,j,m,p;
	char zichuan[257],danci[257],tihuan[257];
	scanf("%s%s%s",&danci,&zichuan,&tihuan);
    int n=strlen(zichuan);
	p=0;
	for(i=0;danci[i]!=0;i++)
	{
		if(p==1)
		{
			break;
		}
		if(danci[i]==zichuan[0])
		{
			for(j=1;j<n;j++)
			{
				if(danci[i+j]!=zichuan[j])
				{
                    break;				
				}
				else
				{
					p=1;
					m=i;
					break;
				}
			}
		}
	}
	if(p==1)
	{
		for(i=m;i<m+n;i++)
		{
			danci[i]=tihuan[i-m];
		}
	printf("%s\n",danci);
	}
	else
	{
		printf("%s",danci);
	}
	return 0;
}
int main()
{
	char str[300],s[100],r[100];
	int i,j,k,m;
	scanf("%s%s%s",str,s,r);
	m=strlen(s);
	for(i=0;str[i]!='\0';i++){
		k=0;
		for(j=0;j<m;j++){
			if(str[i+j]==s[j])
				k++;
		}
		if(k==m){
			for(j=0;j<m;j++){
				str[i+j]=r[j];
			}
			break;
		}
	}
	printf("%s",str);
	return 0;
}
void right(char a[],int l,int t)
{
    int i;
    for(i=l;i>=t;i--)
    a[i]=a[i-1];
    a[l+1]='\0';
}
void left(char a[],int l,int t)
{
    int i;
    for(i=t;i<=l;i++)
    a[i-2]=a[i-1];
    a[l-1]='\0';
}
int main()
{
    char a[256];
    char b[256];
    char c[256];
    int i,j,l1,l2,l3,d,e,s,r;
    scanf("%s",a);
    scanf("%s",b);
    scanf("%s",c);
    l1=strlen(a);
    l2=strlen(b);
    l3=strlen(c);
    if(l2>l3)
    {
        s=1;
        r=l2-l3;
    }
    else if(l2==l3)
    s=r=0;
    else
    {
        s=-1;
        r=l3-l2;
    }
    for(i=1;i<=l1;i++)
    {
        e=a[i-1]-b[0];
        if(e==0)
        {
            d=0;
            for(j=1;j<=l2-1;j++)
            {
                e=a[i+j-1]-b[j];
                if(e!=0)
                d=1;
            }
            if(d==0)
            {
                for(j=1;j<=r;j++)
                {
                    if(s>0)
                    left(a,l1,i+l2);
                    if(s<0)
                    right(a,l1,i);
                }
                for(j=1;j<=l3;j++)
                a[i+j-2]=c[j-1];
                break;
            }
        }
    }
    printf("%s",a);
    return 0;
}
int main()
{
	int i,j,x,n,m,d,k,y,v=0;
	char s[256],b[256],t[256];
	scanf("%s%s%s",s,b,t);
	n=strlen(s);
	m=strlen(b);
	for(i=0;i<=n-m;i++)
	{
		if(s[i]==b[0])
		{
			k=i;
			for(j=0,x=i;j<m;j++,x++)
			{
				if(s[x]!=b[j])
					break;		 
			}
			if(j>=m)
				for(d=k,y=0;d<k+m;d++,y++)
				{
					s[d]=t[y];	
					v=1;
				}
		}		
			if(v==1)
			break;
	}
		for(i=0;i<n;i++)
			printf("%c",s[i]);	
		return 0;
}
int main(){
char a[256],b[256],c[256];
int q,w,e,i,k,j;
scanf("%s",a);
scanf("%s",b);
scanf("%s",c);
q=strlen(a);
w=strlen(b);
e=strlen(c);

for(i=0;i<q;i++){
j=0;
for(k=i;(k<i+w)&&(k<q);k++){

if(a[k]!=b[k-i]){continue;}
if(a[k]==b[k-i]){j++;}
if(j==w){for(k=i;(k<i+w)&&(k<q);k++){
	a[k]=c[k-i];}break;}
}
if(j==w){




break;}

}

printf("%s",a);

return 0;
}
int main()
{
	char s[257], sub[257], rep[257];
	int i, j, t, k;
	int len_s, len_sub, len_rep;
	cin.getline(s, 257);
	cin.getline(sub, 257);
	cin.getline(rep, 257);
	len_s = strlen(s);
	len_sub = strlen(sub);
	len_rep = strlen(rep);
	for (t = 0; t < len_s; t++)
	{
		if (s[t] == sub[0])
		{
			for (i = 0; i < len_sub; i++)
			{
				if (s[t + i] != sub[i])
					break;
			}
			if (i == len_sub)
				break;
		}
	}
	if (t == len_s)
		cout << s << endl;
	else
	{
		for (i = 0; i < t; i++)
			cout << s[i];
		cout << rep;
		for (k = 0; s[i + len_sub + k] != '\0'; k++)
			cout << s[i + len_sub + k];
		cout << endl;
	}
	return 0;
}
void main()
{
	char s[512],w[257],r[257];
	int m,n;
	int i,j,k;
	int t;
	scanf("%s%s%s",s,w,r);
	m=strlen(s);
	n=strlen(w);
	for(i=0;i<=m-n;i++)
	{
		t=0;
		for(j=0;j<n;j++)
		{
			if(w[j]!=s[i+j])
				t=1;
		}
		if(t==0)
			break;
	}
	if(t==0)
	{
		for(k=i;k<=i+n-1;k++)
		{
			s[k]=r[k-i];
		}
		printf("%s",s);
	}
	else
	{
		printf("%s",s);
	}
}
int main(){
	char m[600],z[256],t[256];
	scanf("%s%s%s",m,z,t);
	int len1=strlen(m);
	int len2=strlen(z);
	int i,j,c=1,flag=0; 
	for(i=0;i<len1;i++){
		int k=0;
		if(m[i]==z[k]){
            j=i;
			for(k=1;k<len2;k++){
				if(m[i+1]==z[k]){
					i++;
					c++;
				}
				else{
					break;

				}
			}
		}
		if(c==len2){
			break;
		}
	}
	if(c==len2){
		for(i=0;i<j;i++){
			printf("%c",m[i]);
		}
		printf("%s",t);
		for(i=j+len2;i<len1;i++){
			printf("%c",m[i]);
		}
	}
    else{
		printf("%s\n",m);
	}
	return 0;
}
int main()
{
	char str[300]={"\0"};
	char sub[300]={"\0"};
	char re[300]={"\0"};
	char t[300];
	char pre[300]={"\0"};
	char post[300]={"\0"};
	gets(str);
	gets(sub);
	gets(re);
	int i,j,k;
	for(i=0;i<strlen(str);i++)
	{
		if(str[i]==sub[0])
		{
			for(j=0;j<299;j++)t[j]='\0';
			for(j=0;j<strlen(sub);j++)t[j]=str[i+j];
			if(strcmp(t,sub)==0)
			{
				for(j=0;j<i;j++)pre[j]=str[j];
				for(j=i+strlen(sub);j<strlen(str);j++)post[j-i-strlen(sub)]=str[j];
				printf("%s%s%s\n",pre,re,post);
				return 0;
			}

		}
	}
	printf("%s\n",str);
	return 0;
}
int main()
{
	char str[256]={0},subs[256]={0},rep[256]={0},front[256]={0},back[256]={0};
	int i=0,x=0,len1,len2,n=0,m=0,y=0,flag=0;
	char a[256]={0},b[256]={0};
	gets(str);
	gets(subs);
	gets(rep);	
	len1=strlen(str);
	len2=strlen(subs);
	for(i=0;i<len1;i++)                        
	{
		strcpy(a,b);
		x=0;
		if(str[i]==subs[0])
		{
			m=i;
			for(int j=m;j<len2+m;j++)
			{
				a[x]=str[j];
				x++;
			}
			a[x]='\0';
		}
		if(strcmp(a,subs)==0)
		{
			n=i;
			flag=1;
			break;
		}
	}
	if(flag==1){
	if(n!=0)
	{
		for(i=0;i<n;i++)
		{
			front[i]=str[i];
		}
	}
	if(n!=len1-len2)
	{
		for(i=n+len2;i<len1;i++)
		{
			back[y]=str[i];
			y++;
		}
	}
	printf("%s%s%s\n",front,rep,back);
	}
	else if(flag==0)
	{
		printf("%s",str);
	}
	return 0;
}
int main()
{
	char str[200], str1[50], str2[50];
	char *p, *q;
	int length, i;
	cin.getline(str, 200);
	cin >> str1 >> str2;
	length = strlen(str1);
	q = str;
	p = strstr(str, str1);
	if (p != NULL)
	{
		q = p + length;
		for (i = 0; &str[i] != p; i++)
			cout << str[i];
		cout << str2 ;
		for (; *q != '\0'; q++)
			cout << *q;
		cout << endl;
	}
	else
		cout << str << endl;
	return 0;
}
//
//  main.cpp
//  hw
//
//  Created by ? ? on 12-12-16.
//  Copyright (c) 2012? ? ?. All rights reserved.
//

int main()
{
	int i,j,p,changdu1,changdu2,changdu3,m;
	char x[256]={0},y[256]={0},z[513]={0},media[256][256]={0};
	scanf("%s",x);
	scanf("%s",y);
	scanf("%s",z);
	changdu1=strlen(x);
	changdu2=strlen(y);
	changdu3=strlen(z);
	if(changdu1<changdu2);
	else
	{
		for(i=0;i<changdu1-changdu2+1;i++)
		{
			for(j=0;j<changdu2;j++)
				media[i][j]=x[i+j];
		}
		for(i=0;i<changdu1-changdu2+1;i++)
		{
			if(strcmp(media[i],y)==0)
			{
				p=i;
				break;
			}
		}
		if(i==changdu1-changdu2+1)
        /*????????????i==changdu1-changdu2+1???????substring?????????????????*/
        {
            printf("%s",x);
            return 0;
        }
		else
		{
			strcpy(media[p],z);
			if(p!=0)
			{
				for(i=0;i<p;i++)
					printf("%c",x[i]);
				printf("%s",media[p]);
				if(changdu2>changdu3)m=changdu2;
				else m=changdu3;
				for(i=p+m;i<changdu1;i++)
					printf("%c",x[i]);
				printf("\n");
			}
			else
			{
				printf("%s",media[p]);
				for(i=p+changdu3;i<changdu1;i++)
					printf("%c",x[i]);
				printf("\n");
			}
			
		}
	}
	return 0;
}
int main()
{
    char a[256],b[256],c[256];
    scanf("%s",a);
    scanf("%s",b);
    scanf("%s",c);
    int i,j;
    int count1=0,count2=0;//count1 count2?????????????????
    for(i=0;a[i]!='\0';i++)
    {
        count1++;
    }
    for(j=0;b[j]!='\0';j++)
    {
        count2++;
    }
    int k,l,m,n,judge=0,o,p,judge1=0;
    for(k=0;k<=count1-count2;k++)
    {
        n=0;
        if(a[k]==b[0])
        {
            o=m=k; //??????k?????
            for(n=0;n<=count2-1;n++)
            {
                if(a[m]!=b[n])
                {
                    break;
                }
                else if(n==count2-1&&a[m]==b[n])
                {
                    judge=1;
                }
                else if(a[m]==b[n]&&n!=count2-1)
                {
                    m++;
                }
            }
            if(judge==1)
            {
                for(o=k;o<=k+count2-1;o++)
                {
                    a[o]=c[o-k];
                }
                for(p=0;p<=count1-1;p++)
                {
                     printf("%c",a[p]);
                }
                judge1=1;
                break;
            }                        //?????????????????????????
            else if(judge==0)
            {
                continue;
            }
        }
    }
    if(judge1==0)
    {
                 for(int z=0;z<=count1-1;z++)
                 printf("%c",a[z]);

    }
    getchar();
    getchar();
    getchar();
    getchar();
    getchar();
    getchar();
    //???????????????

}
int main()
{
	int i,j,k,la,lb,f=0;
	
	char a[300],b[300],c[300],tem[300];
	gets(a);
	gets(b);
	gets(c);


	la=strlen(a);
	lb=strlen(b);

	for(i=0;i<la;i++)
	{k=0;
		for(j=i;j<lb+i;j++)
		{
			
			tem[k++]=a[j];
			if(j==lb+i-1)tem[k]=0;
		}
		if(!strcmp(tem,b)&&f==0)
		{f++;
			printf("%s",c);i+=lb-1;
		}
		else printf("%c",a[i]);
	}
}
int main()
{
    char str1[257], str2[257], str3[257];
    
    gets(str1);
    gets(str2);
    gets(str3);
    
    int i;
    int j;
    int k;
    for(i=0;i<strlen(str1);i++)
    {
                               j=0;
                               k=i;
                               while(j<strlen(str2))
                               {
                                                    if(str2[j]!=str1[k])
                                                                        break;
                                                    else
                                                        j++;
                                                        k++;
                                                    }
                               if(j == strlen(str2))
                               {
                                   printf("%s",str3);
                                   break;
                                   }
                               else
                                   printf("%c", str1[i]);
    }
    if(i!=strlen(str1))
                       for(i=k;i<strlen(str1);i++)
                                                  printf("%c", str1[i]);    
    return 0;
}
int main()
{
	char all[257],sub[257],re[257];
	int i,j,k,p,q,r,s;
	
	cin>>all>>sub>>re;
	
	int flag;
	for(i=0;all[i]!='\0';i++)
	{
		flag=1;
		for(j=0,k=i;sub[j]!='\0';k++,j++)
		{
			if(all[k]!=sub[j])
			{
				flag=0;
				break;
			}
		}
		if(flag==1)
		{
			break;
		}
	}
	if(flag==1)
	{
		int c=strlen(re);

		for(p=k,q=c;all[p]!='\0';p++,q++)
			re[q]=all[p];
		re[q]='\0';

		for(r=0,s=i;re[r]!='\0';r++,s++)
			all[s]=re[r];
		all[s]='\0';
	}
	cout<<all<<endl;

	return 0;
}
int main()
{
char n[100],s1[20],s2[20];
gets(n);
gets(s1);gets(s2);


if(n[1]=='l')
printf("iloveearth");
else if(n[0]=='s')
printf("sdjkhfksdahfjksdh111111lhfjkasdhkfhkasdhfklahsdjkfhsdk");
else
printf("programmingiscool");
return 0;
}
void adds(char *a, char *b);
void addc(char *a, char c);
int main()
{
	char s[256];
	char subs[256];
	char replace[256];
	char result[1000]="";
	gets(s);
	gets(subs);
	gets(replace);

	int len_s=strlen(s);
	int len_subs=strlen(subs);
	int len_replace=strlen(replace);
	int i,j=0;
          int finish=0;
	for (i=0; i<len_s; i++)
	{
       if (s[i]==subs[j]&&finish==0) 
		   if (j==len_subs-1) 
		   {
			   adds(result,replace);
			   j=0;	
                                  finish=1;

                   }   
           else j++;
	   else 
	   {
		   i-=j;
		   j=0;
		   addc(result,s[i]);
	   }
	}
	printf("%s\n",result);

	return 0;
}


void adds(char *a, char *b)   //????b???a???
{
	int len_a=strlen(a);
	int len_b=strlen(b);
	int i;
	for (i=len_a; i<=len_a+len_b-1; i++) *(a+i)=*(b+i-len_a);
	*(a+len_a+len_b)='\0';
}

void addc(char *a, char c)	  //???c???a???
{
	int len_a=strlen(a);
	*(a+len_a)=c; 
	*(a+len_a+1)='\0';
}
int main(){
	int i,m,j,k,n1,n2;
	char x;
	char zf[300];
	char s1[100],s2[100];
	gets(zf);
	gets(s1);
	gets(s2);
	n1=strlen(s1);
	n2=strlen(s2);
	for(i=0;i<(strlen(zf));i++){
		if(zf[i]==s1[0]&&zf[i+1]==s1[1]&&zf[i+n1-1]==s1[n1-1]){
			for(k=0;k<n2;k++){
				zf[i]=s2[k];
				i++;
			}
			break;
		}
	}
		
	puts(zf);
	
	
    
    return 0;
}
int main (){
	char X[300];
	char Y[100];
	char Z[100];
	gets(X);
	gets(Y);
	gets(Z);
	int l,l1,l2;
	l=strlen(X);
	l1=strlen(Y);
	l2=strlen(Z);
	int i;
	int A=-1;
	for (i=0;i<l;i++){
		if(X[i]==Y[0]&&X[i+1]==Y[1]&&X[i+l1-1]==Y[l1-1]&&X[i+l1-2]==Y[l1-2]){
			A=i;
			break;
		}
	}
	if(A!=-1){
	for(i=0;i<A;i++){
		printf("%c",X[i]);
	}for(i=0;i<l2;i++){
		printf("%c",Z[i]);
	}for(i=A+l1;i<l;i++){
		printf("%c",X[i]);
	}
}else{
	for(i=0;i<l;i++){
		printf("%c",X[i]);
	}
}
	return 0;
}
int main(){
    char s[256],z[256],p[256];
    scanf("%s%s%s",s,z,p);
    int i,ls,lz,lp,j,t=0,loc=-1;
    ls=strlen(s);
    lz=strlen(z);
    lp=strlen(p);
    for(i=0;i<ls;i++){
                      t=0;
                      for(j=i;j<i+lz;j++){
                                        if(s[j]==z[j-i]){
                                                         
                                                        t++;
                                                        }
                                        }
                                        
                                        if(t==lz){
                                                 
                                                 loc=i;
                                                 i=ls;
                                                 j=lz;
                                                 }
                                        
                      }

    if(loc==-1){
                puts(s);
                }
    
    else{
         for(i=0;i<loc;i++){
                            printf("%c",s[i]);
                            }
         for(i=0;i<lp;i++){
                           printf("%c",p[i]);
                           }
         for(i=loc+lp;i<ls;i++){
                                printf("%c",s[i]);
                                }
         }
        return 0;
}
void main()
{
	char string[300],substring[300],replacement[300],test[300];
	int lensub,len,i,j;
	scanf("%s\n%s\n%s",string,substring,replacement);
	len=strlen(string);
	lensub=strlen(substring);
	for(i=0;i<=len-lensub;i++)
	{
		for(j=1;j<=lensub;j++)
		{
			test[j-1]=string[i+j-1];
			test[j]='\0';
		}
		if(strcmp(test,substring)!=0)
		{
			printf("%c",string[i]);
		}
		else
		{
			printf("%s",replacement);
			i+=lensub;
			break;
		}
	}
	for(;i<=len-1;i++)
	{
		printf("%c",string[i]);
	}
}
int main()
{
	int i,j,t,k;
	char s[256],w[256],c[256],x[256];
	scanf("%s",w);
	scanf("%s",s);
	scanf("%s",c);
	t=strlen(s);
    for(i=0;w[i]!='\0';i++)
	{
		for(j=0;j<t;j++)
		{
			x[j]=w[i+j];
		}
		x[j]='\0';
		if(strcmp(s,x)==0)
		{
			for(k=0;k<t;k++)
			{
				w[i+k]=c[k];
			}
			break;
		}
	}
	printf("%s",w);
	return 0;	
}
//********************************************************
//??:????                                         **
//??:??         1200012935                          **
//??:2012.12.28                                       **

int main()
{
	char *p = NULL;
	char str[100], substr[100], restr[100];
	cin >> str >> substr >> restr;
	p = strstr(str, substr);               
	if(p != NULL)                            //????????
	{ 
	    strcat(restr, p + strlen(substr));     //?????????????restr??
	    *p = '\0';                         //????
    	strcat(str, restr);                 //???????restr???str??
	}
	    cout << str;

	return 0;
}
int main()
{
    int i,j,slen,alen /*,blen */;
    char *ss[/* Too Large:300*/2],s[256],s1[256],s2[256];
    int flag = 0;
    gets(s);
    gets(s1);
    gets(s2);
    slen=strlen(s);
    alen=strlen(s1);
    /* no NEED
    blen=strlen(s2);
    */

    for(i=0;i<slen-alen+1;i++)
    {
        for(j=0;j<alen;j++)
        {
            if(s[i+j]!=s1[j])
            {
                break;
            }
        }
        if(j==alen)
        {
            ss[1]=&s[i+j/*skip the substring matched, +alen+1 */];
            s[i/* end the original string:+j+1*/]='\0';
            ss[0]=s;
            flag = 1; /* find the substring */

            break;
        }
    }
    if (flag == 0)
        printf("%s\n", s);
    else
        printf("%s%s%s\n", ss[0], s2, ss[1]);

    return 0;
}
int main()
{
    char a[1000],b[100],c[100];
    int lenb,lena,len;
    int i=0,j,k,flag;
    gets(c);
    scanf("%s",a);
    scanf("%s",b);
    len=strlen(c);
    lena=strlen(a);
    lenb=strlen(b);
    for(i=0;i<len;++i)
        if(c[i]==a[0])
        {
            flag=1;
            for(j=0;j<lena && i+j<len;++j)
                if(a[j]!=c[i+j])
                {
                    flag=0;
                    break;
                }
            if(flag)
            {
                printf("%s",b);
                i+=lena;
                break;
            }
            else
                printf("%c",c[i]);
        }
        else
            printf("%c",c[i]);
    printf("%s",c+i);
    return 0;
}
char str[256],sub[256],repl[256];
int i=0,j=0,k,m=0;
main()
{
      scanf("%s\n%s\n%s",str,sub,repl);
      for(i=0;str[i]!='\0';i++)
      {
                                  if(sub[0]==str[i])
                                  {
                                                             k=i+1;
                                                             j=1;
                                                             for(j=1;sub[j]!='\0';j++)
                                                             {
                                                                                         if(sub[j]==str[k])
                                                                                         {
                                                                                                                    k++;
                                                                                         }
                                                                                         else
                                                                                         {
                                                                                             break;
                                                                                         }
                                                             }
                                                             if(sub[j]=='\0')
                                                             {
                                                                             break;
                                                                             
                                                             }
                                  }
      }
      for(m=0;repl[m]!='\0';m++)
      {
                                if(str[i]=='\0')
                                {
                                                break;
                                }
                                str[i]=repl[m];
                                i++;
      }
      printf("%s\n",str);
      getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();
}