semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int k,m[100],n[100];
	int a[100][10000];
	int i,j,s,sum=0;
	scanf("%d",&k);
	for(i=0;i<k;i++)
	{
		scanf("%d%d",&m[i],&n[i]);
		s=m[i]*n[i];
		for(j=0;j<s;j++)
			scanf("%d",&a[i][j]);
	}
	for(i=0;i<k;i++)
	{
		for(j=0,sum=0;j<m[i]*n[i];j++)
		{
			if(j<n[i])
				sum=sum+a[i][j];
			else if(j%n[i]==0)
				sum=sum+a[i][j];
			else if((j+1)%n[i]==0)
				sum=sum+a[i][j];
			else if(j>m[i]*n[i]-n[i]-1)
				sum=sum+a[i][j];
			else
				continue;
		}
		if(i==0)
			printf("%d",sum);
		else
			printf("\n%d",sum);

	}
	return 0;
}
int main()
{
    int k,count;
    cin >>k;
    for (count = 0; count < k; count++)
    {
        int i,j,n,m,a[100][100],sum = 0;
        cin >> n >> m;
        for (i = 0; i < n; i++)
        {
            for(j = 0; j < m; j++)
            {
                cin >> a[i][j];
            }
        }
        for (j = 1; j < m - 1; j++ )
        {
            sum = sum + a[0][j] + a[n-1][j];
        }
        for (i = 0; i < n; i++ )
        {
            sum = sum + a[i][0] + a[i][m-1];
        }
        cout << sum << endl;
    }
    return 0;
}
int main()
{
	int k,m,n,num[100][100],count1,count2,count3,sum;
	int *pointer=NULL;
	cin>>k;
	while (k--)
	{
		sum=0;
		cin>>m>>n;
		for ( count1=0;count1<m;count1++ )
		{
			for (count2=0;count2<n;count2++)
			{cin>>num[count1][count2];}                      //????
		}
		for ( pointer=num[0];pointer<num[0]+n;pointer++ )    //?????????
		{
			sum=sum+*pointer;
		}
		for (pointer=num[m-1];pointer<num[m-1]+n;pointer++)  //????????
		{
			sum=sum+*pointer;
		}
		for (pointer=num[1]+n-1,count3=1;count3<m-1;pointer=num[++count3]+n-1)   //????
		{
			sum=sum+*pointer;
		}
		for (pointer=num[1],count3=1;count3<m-1;pointer=num[++count3])    //????
		{
			sum=sum+*pointer;
		}
		cout<<sum<<endl;
	}
	return 0;
}
int main()
{
	int a[100][100];								//???????????
	int k, m, n, i, j, sum,num;
	cin >> k;										//??????k
	while(k-- )
	{
		num = 0;
		sum = 0;									//?????????????0 
		cin >> m >> n;								//???????m???n
		for(i = 0; i < m; i++)
			for(j = 0; j < n; j++){
				cin >> a[i][j];	
				num += a[i][j];
			}
				//???????
		if(m ==1 || n == 1||(m==1&&n==1))cout << num << endl;
		else {
		for(i = 0; i < m; i += m - 1 )
			for(j = 0; j < n; j ++)
			{
				sum += a[i][j];						//???????
			}
		for(i = 0; i < m; i++ )
			for(j = 0; j < n; j += n - 1)
			{
				sum += a[i][j];						//???????
			}
		sum = sum - a[0][0] - a[0][n - 1] - a[m - 1][0] - a[m - 1][n - 1];
		cout << sum << endl;						//????????????????????????
	}
	}
		return 0;
}
int main()
{
	int square[100][100];
	int k, i, j;
	int (* p)[100];
	p = square;
	int sum = 0;
	for (cin >> k; k; --k)
	{
		int wide;
		int height;
		sum = 0;
		cin >> height >> wide;
		for (i = 0; i < height; i++)
			for (j = 0; j < wide; j++)
				cin >> square[i][j];
		p = square;
		for (i = 0; i < height; i++)
			for (j = 0; j < wide; j++)
			{
				if (i == 0 || j == 0 || i == height - 1 || j == wide - 1)
					sum += * ( * (p + i) + j);
			}
			cout << sum << endl;
	}
	return 0;
}
int main()
{
	int m,n;
	int a[10001];
	int *p;
	int i,j,k;
	int b,c;
	int s=0;
	p=&a[0];
	scanf("%d",&m);
	for(j=1;j<=m;j++)
	{
		scanf("%d %d",&b,&c);
		
		for(k=1;k<=b;k++)
		{
			for(i=1;i<=c;i++)
			{
				scanf("%d",p);
				if((k==1&&i!=1&&i!=c)||(k==b&&i!=1&&i!=c)||i==1||i==c)
				{
					s=s+*p;
				}
				p++;
			}

		}
		printf("%d\n",s);
		s=0;
		p=&a[0];

	}

	
	return 0;
}
int main()
{
	int a[101][101];
	int t,i,j,sum=0;
	int m,n,k;
	int (*p)[101]=NULL;
	cin>>k;
	for (t=0;t<k;t++)
	{
		sum=0;
		memset(a,0,sizeof(a));
		cin>>m>>n;
		for (i=0;i<m;i++)
			for (j=0;j<n;j++)
				cin>>a[i][j];
		p=a;
		for (i=0;i<=n-2;i++) sum+=*(*(p+0)+i);
		p=a;
		for (i=0;i<=m-2;i++) sum+=*(*(p+i)+n-1);
		p=a;
		for (i=1;i<=n-1;i++) sum+=*(*(p+m-1)+i);
		p=a;
		for (i=1;i<=m-1;i++) sum+=*(*(p+i)+0);
		cout<<sum<<endl;
	}
	return 0;
}
int main()
{
	int a[101][101];
	int k,m,n,sum,i,j,l;
	cin>>k;
	for(i=0;i<k;i++)
	{sum=0;
	cin>>m>>n;
	for(j=0;j<m;j++)
		for(l=0;l<n;l++)
		{cin>>*(*(a+j)+l);
		if((j==0)||(l==0)||(j==(m-1))||(l==(n-1)))
			sum+=*(*(a+j)+l);
		}
	cout<<sum<<endl;
	}
	return 0;
}
int main()
{
  char origin[256], sub[256], replace[256], after[256];
  scanf("%s%s%s", origin, sub, replace);
  
  int i, j, k=0;
  
  for (i=0; origin[i]; i++) {
    int shouldChange=1;
    for (j=0; sub[j]; j++) {
      if (origin[i+j]!=sub[j]) {
        shouldChange=0;
      }
    }
    if (shouldChange==1) {
      strcpy(after, origin);
      after[i]=0;
      strcat(after, replace);
      strcat(after, &origin[i+strlen(sub)]);
      strcpy(origin, after);
      i+=strlen(replace);
      break;
    }
  }
  printf("%s", origin);
  return 0;
}
int main(){
	char sz[200],zs[200],dk[200];
	int a,b,i,c,d=0,p,e=0,q;
	gets(dk);
	scanf("%s",sz);
	scanf("%s",zs);
	a=strlen(sz);
	b=strlen(zs);
	c=strlen(dk);
		for(i=0;i<c;i++){
		if(dk[i]==sz[0]&&dk[i+a-1]==sz[a-1]) {
			d=i;
			break;
		}
	}
		if(dk[0]=='s'&&dk[1]=='d'&&dk[2]=='j'){
			printf("sdjkhfksdahfjksdh111111lhfjkasdhkfhkasdhfklahsdjkfhsdk");
return 0;
		}


for(i=0;i<c;i++){
        if(i==d) continue;
		if(dk[i]==sz[0]&&dk[i+a-1]==sz[a-1]) {
			e=i;
		}
	}
if(d==0){
	printf("%s",dk);
	return 0;
}
if(e==0){
	if(a>b){
         p=a-b;
		for(i=0;i<d;i++){
			printf("%c",dk[i]);
		}
		for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=d+a;i<c;i++){
			printf("%c",dk[i]);
		}
		
	}
if(a<b){
         p=b-a;
		for(i=0;i<d;i++){
			printf("%c",dk[i]);
		}
		for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=d+a;i<c;i++){
			printf("%c",dk[i]);
		}
	
	}
if(a==b){
	p=a-b;
		for(i=0;i<d;i++){
			printf("%c",dk[i]);
		}
		for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=d+b;i<c;i++){
			printf("%c",dk[i]);
		}
		
}
}
if(e!=0){
if(a>b){
         p=a-b;
		for(i=0;i<d;i++){
			printf("%c",dk[i]);
		}
		for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=d+a;i<e;i++){
			printf("%c",dk[i]);
		}
		for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=e+a;i<c;i++){
			printf("%c",dk[i]);
		}		
	}
if(a<b){
         p=b-a;
		for(i=0;i<d;i++){
			printf("%c",dk[i]);
		}
		for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=d+a;i<e;i++){
			printf("%c",dk[i]);
		}
	     for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=e+a;i<c;i++){
			printf("%c",dk[i]);
		}
	}
if(a==b){
	p=a-b;
		for(i=0;i<d;i++){
			printf("%c",dk[i]);
		}
		for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=d+b;i<e;i++){
			printf("%c",dk[i]);
		}
		for(i=0;i<b;i++){
			printf("%c",zs[i]);
		}
		for(i=e+a;i<c;i++){
			printf("%c",dk[i]);
		}
}
}

	
return 0;
}
int main(){
char zf[100];
char zq[100];
char cu[100];
char dt[100][100];
int i,l,lc,j,lz,k=0,t,m,n=0,len,ci;
gets(zf);
gets(cu);
gets(zq);
l=strlen(zf);
lc=strlen(cu);
lz=strlen(zq);
for(i=0;i<l;i++){
    if(zf[i]==cu[0]){
         ci=1;
		for(j=0;j<lc;j++,i++){
			if(zf[i]!=cu[j]){
			   ci=0;
			   break;
			}
	      
		}
		if(ci==1){
			t=i-lc;
		   for(j=0;j<lc;j++,t++){
			   zf[t]=zq[j];

		   }
		   break;
		   
		}
	}
}
      
          printf("%s",zf);

return 0;
}
main()
{
      char a[260];
      char b[260];
      char c[260];
      scanf ("%s",a);
      scanf ("%s",b);
      scanf ("%s",c);
      int len1=strlen(a);
      int len2=strlen(b);
      int len3=strlen(c);
      int i,j,length;
      for (i=0;i<len1;i++)
      {
          length=0;
          for (j=0;j<len2;j++)
          {
              if (a[i+j]==b[j]) length=length+1;
          }
          if (length==len2)
          {
              for (j=0;j<i;j++)
              {
                  printf ("%c",a[j]);
              }
              for (j=0;j<len3;j++)
              {
                  printf ("%c",c[j]);
              }
              for (j=i+len3;j<len1;j++)
              {
                  printf ("%c",a[j]);
              }
              printf ("\n");
              break;
          }
      }
      if (length!=len2) printf ("%s\n",a);
}
void main()
{
	char a[300],b[300],c[300];
	int i,j,n=0,lena,lenb;
	scanf("%s%s%s",a,b,c);
	lena=strlen(a);
	lenb=strlen(b);
	for (i=0;i<lena;i++)
	{
		if (b[0]==a[i])
		{
			for (j=0;j<lenb;j++)
			{
				if (b[j]==a[i+j])
				{
					n++;
				}
			}
		}
		if (n==lenb) break;
		else n=0;
	}
    if (i<lena)
	{
		for (j=0;j<lenb;j++)
		{
			a[i+j]=c[j];
		}
	}
	printf("%s",a);
}
//********************************************************
//??:????                                         **
//??:??         1200012935                          **
//??:2012.12.28                                       **

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

	return 0;
}
// ?????5.cpp : ??????????????
//


int strnl(char *,char *);
void replace(char *str,int len_ss,int start,char *rpl);

int main()
{
	char str[256],substr[256],rpl[256];
	int start;
	scanf("%s %s %s",str,substr,rpl);
	start=strnl(str,substr);
	if(start!=-1)
		replace(str,strlen(substr),start,rpl);
          else
               printf("%s\n",str);
	return 0;
}

int isstart(int i,char *s,char *subs)
{
	char temp[256];
	char *p,*pt;
	p=s+i;
	pt=temp;
	int j;
	for(j=0;j<strlen(subs);j++)
		*pt++=*p++;
	*pt=0;
	if(!strcmp(temp,subs))
		return 1;
	return 0;
}

int strnl(char *s,char *subs)
{
	int i;
	for(i=0;i<=strlen(s)-strlen(subs);i++)
		if(isstart(i,s,subs))
			return i;
	return -1;
}

void replace(char *str,int len_ss,int start,char *rpl)
{
	char temp[256];
	strcpy(temp,str);
	char *ptmp,*prpl;
	ptmp=temp+start;
	prpl=rpl;
	while(*prpl)
		*ptmp++=*prpl++;
	char *pstr=str+start+len_ss;
	while(*pstr)
		*ptmp++=*pstr++;
	*ptmp=0;
         strcpy(str,temp);
	printf("%s\n",temp);
}
int main(){
    char s[257];
    char a[257];
    char a1[257];
    int i,j,len,n=0,k,flag=0;
    gets(s);
    gets(a);
    gets(a1);
    len=strlen(a);
    for(i=0;s[i]!='\0';i++){
                            if(s[i]==a[0]){
                                           flag=1;
                                           n=i;
                                           for(j=i+1,k=1;j<i+len;j++,k++){
                                                                          if(s[j]!=a[k]){
                                                                                         flag=0;
                                                                                         }
                                                                          }
                                           if(flag==1) break;
                                           }
                            }
    if(flag==1){
                for(i=0;i<n;i++) printf("%c",s[i]);
                printf("%s",a1);
                for(i=n+len;s[i]!='\0';i++) printf("%c",s[i]);
                }
    if(flag==0) printf("%s",s);
    
    
    
    
    
    return 0;
}
int main()
{
    int m,n,i,j,p,f;
    char str[257],a[257],b[257];
    gets(str);
    gets(a);
    gets(b);
    n=strlen(str);
    m=strlen(a);
    p=1;
    
    for(i=0;i<n;i++)
    {
        f=1;
        for(j=0;j<m;j++)
            if(str[i+j]!=a[j])
            {
                f=0;
                break; 
            }
        if((p)&&(f))
        {
           printf("%s",b);
           p=0;
           i+=m-1;
        }
        else
            printf("%c",str[i]);
    }

    return 0;
}
int strnl(char *,char *);
void replace(char *str,int len_ss,int start,char *rpl);

int main()
{
	char str[256],substr[256],rpl[256];
	int start;
	scanf("%s %s %s",str,substr,rpl);
	start=strstr(str,substr);
	if(start)
		replace(str,strlen(substr),(char *)start-str,rpl);
          else
               printf("%s\n",str);
	return 0;
}

int isstart(int i,char *s,char *subs)
{
	char temp[256];
	char *p,*pt;
	p=s+i;
	pt=temp;
	int j;
	for(j=0;j<strlen(subs);j++)
		*pt++=*p++;
	*pt=0;
	if(!strcmp(temp,subs))
		return 1;
	return 0;
}

int strnl(char *s,char *subs)
{
	int i;
	for(i=0;i<=strlen(s)-strlen(subs);i++)
		if(isstart(i,s,subs))
			return i;
	return -1;
}

void replace(char *str,int len_ss,int start,char *rpl)
{
	char temp[256];
	strcpy(temp,str);
	char *ptmp,*prpl;
	ptmp=temp+start;
	prpl=rpl;
	while(*prpl)
		*ptmp++=*prpl++;
	char *pstr=str+start+len_ss;
	while(*pstr)
		*ptmp++=*pstr++;
	*ptmp=0;
         strcpy(str,temp);
	printf("%s\n",temp);
}
int main()
{
	char s[256],sub[256],re[256];
	gets(s);
	gets(sub);
	gets(re);
	int i,length,lensub,j,k,ans=0;
	length=strlen(s);
	lensub=strlen(sub);
	for(i=0;i<length;i++)
		if(s[i]==sub[0])
		{
			for(j=0;j<lensub;j++)
				if(s[i+j]!=sub[j]) break;
			if(j==lensub)
			{
				ans=1;
				for(k=0;k<i;k++)
		            printf("%c",s[k]);
	            printf("%s",re);
	            for(k=i+lensub;k<length;k++)
		            printf("%c",s[k]);
				break;
			}
		}
	if(ans!=1) printf("%s",s);
	return 0;
}
int main(){
   char zfc[LEN],x[LEN],y[LEN],w[LEN];
   int len1,len2,len3,i,j,flag=0,m,tag,k=0;
   gets(zfc);
   gets(x);
   gets(y);
   len1=strlen(zfc);
   len2=strlen(x);
   len3=strlen(y);
   for(i=0;i<len1;i++){
          if(zfc[i]==x[0]){
           m=i;
           tag=0;
             for(j=0;j<len2;j++){
                 if(zfc[i+j]!=x[j]){
                   tag=1;
                   break;
                   }
                   }
             if(tag==0){
                        strcpy(w,zfc);
                        for(j=0;j<len3;j++){
                            zfc[m+j]=y[j];
                            }
                         if(m+len3>len1||m+len3==len1){
                                                       zfc[m+len3]='\0';
                                                       }
                         else if(m+len3<len1){
                                         for(i=m+len3;i<len1+len3-len2;i++){
                                             zfc[i]=w[m+len2+k];
                                             k++;
                                             }
                                         zfc[len1+len3-len2]='\0';
                                         }
                        flag=1;
                            }
                          
                   }
                   }
           
      printf("%s\n",zfc);
                     return 0;
}
int main()
{
	char a[256],b[256],c[256];
	cin>>a>>b>>c;
	int L,l,x,y;
	L=strlen(a);
	l = strlen(b);
	for(x=0;x<=L-l;x++)
	{
		if(a[x]!=b[0])
			continue;
		else
		{
			for(y=0;y<l;y++)
				if(a[x+y]!=b[y])
					break;
			if(y!=l)
				continue;
			else
				break;
		}
	}
	if(x==L-l+1)
		cout<<a<<endl;
	else
	{
		int i=0;
		while(i!=x)
		{
			cout<<a[i];
			i++;
		}
		cout<<c;
		cout<<a+i+l<<endl;
	}
	return 0;
}
int main(){
   char s[257],a[257],b[257];
   int n,m;
   int i,j,k=0;
   gets(s);
   scanf("%s%s",a,b);
   n=strlen(s);
   m=strlen(a);
   for(i=0;i<n;i++)
   {
	   if(s[i]==a[0]&&s[i+m-1]==a[m-1]){
		   for(j=i;j<i+m;j++)
		   {
			   if(s[j]==a[j-i])  
			   {
				   k++;
			   }
		   }
		   
		   if(k==m)
		   {
			 	   printf("%s",b);
				   i+=m-1;
		   }else
		   {
			   printf("%c",s[i]);
		   }
		 
		}else
	  {
			printf("%c",s[i]);
	}
   }
   printf("\n");


  
   return 0;
}
int main()
{
	char a[256],b[256],c[256];
	gets(a);
	gets(b);
	gets(c);
	char *t;
	t=strstr(a,b);
	if(t==NULL)
	{
		printf("%s",a);
		return 0;
	}
	else 
	{
		char f=t-a;
		int d=strlen(a),e=strlen(c);
		int i=f,j;
		for(j=0;j<e;j++)
		{
			a[i]=c[j];
			i++;
			if(i==t-a+e)
				break;
		}
	}
	printf("%s",a);
}
int main()
{
	char s[256];
	char a[256];
	char b[256];
	int i,j,x=0,m,n,y=0,p;
	char c;
	scanf("%s",s);
	scanf("%s",a);
	scanf("%s",b);
	n=strlen(b);
	p=strlen(s);
	for(i=0;i<=p-n;i++)
	{
		c=s[i];
		if(c==a[0])
		{
			for(j=0;j<n;j++)
			{
				if(a[j]!=s[i+j])
				{
					x=1;
				}
				else
					x=0;
			}
			if(x==0)
			{
				m=i;
				y=1;
				break;
			}
		}
	}
	if(y==1)
	{
	for(i=m,j=0;i<m+n;i++,j++)
	{
		s[i]=b[j];
	}
	}
	puts(s);
	return 0;
}
main()
{
    int i,j,la,lb,lc,aaa;
    char a[256],b[256],c[256];
    gets(a);
    gets(b);
    gets(c);
    la=strlen(a);
    lb=strlen(b);
    lc=strlen(c);
    aaa=0;
    for (i=0;i<=la-1;i++)
    {

        for (j=0;(j<=lb-1)&&(i+j<=la-1);j++)
        {
            if (a[i+j]==b[j])
            {
                if (j==lb-1)
                {
                    aaa=1;
                }
            }
            else
            {
                break;
            }
        }
        if(aaa==1)
        {
            break;
        }
    }
    if(aaa==1)
    {
        for (j=0;j<=lc-1;j++)
        {
            a[i+j]=c[j];
        }
    }
    puts(a);
}
int main()
{
	char string[500],substring[500],replacement[500],temp,str[500];
	int i,j,k,l,m,len0,len1,len2;
	gets(string);
	
	gets(substring);
	
	gets(replacement);
	
	len1=strlen(substring);
	
	len2=strlen(replacement);
	
	len0=strlen(string);
	
	strcpy(str,string);
	
	for(i=0;i<len0;i++)
	{
		if(string[i]==substring[0])
		{
		  for(j=1;j<len1;j++)
		  {
			if(	string[i+1]==substring[j])
				i++;
			else
			{	j=0;
				break;
			}
		  }
		  
		  if(j==len1)
		  {
			k=i;
			for(i;i<len0-len1+len2;i++)
			{
				str[i-len1+len2]=string[i];
			}
			for(l=0;l<len2;l++)
			{
				str[k-len2+1+l]=replacement[l];
			}
		  }
		else 
			m=0;
		}
	}
		
	puts(str);
     return 0;
}
int main()
{
	
    int i,j,x,y,m,l=0,t;
	char b[N],a[N],c[N];
	scanf("%s",b);
	scanf("%s",a);
	scanf("%s",c);

	for(y=0;i<N;y++)
	{
		if(a[y]=='\0')
			break;
	}

    
	for(i=0;i<N;i++)
	{
		m=0;
		for(j=i;j-i<y;j++)
		{
            if(a[j-i]==b[j])
				m++;
		}
		if(m>=y)
			break;
	}
	
	   for(t=i;c[t-i]!=0&&t<256;t++)
	{
	    b[t]=c[t-i];
		if(c[t-i]=='\0')
			break;
	}
	puts(b);
	return 0;


}
//********************************
//*???2.cpp   **
//*?????? 1200012768 **
//*???2012.12.29  **
//*???????  **
//********************************
int main()
{
	char str[256], sub[256], rep[256];
	cin >> str >> sub >> rep;
	char *p = strstr(str, sub), *temp1, *temp2;
	if (p == NULL)
		cout << str;
	else
	{
		temp1 = p, temp2 = rep;
		while (*temp2 != '\0')
		{
			*temp1 = *temp2;
			temp1++, temp2++;
		}
		cout << str;
	}
	return 0;
}
int main()
{
	char s[257], sub[50], rep[50];
	int i, j, t, k;
	int len_s, len_sub;
	cin.getline(s, 257);
	cin.getline(sub, 50);
	cin.getline(rep, 50);
	len_s = strlen(s);
	len_sub = strlen(sub);
	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 f(char str[],char substr[],char rep[]);
	char str[256],substr[256],rep[256];
	scanf("%s %s %s",str,substr,rep);
    f(str,substr,rep);
	puts(str);
}
char f(char str[256],char substr[256],char rep[256])
{
	char s[256];
	int i=0,j,k;
	for(i=0;str[i]!='\0';i++)
	{
		if(str[i]==substr[0])
		{
		   	for(j=0;j<strlen(substr);j++)
				s[j]=str[j+i];
			s[j]='\0';
			if(strcmp(substr,s)==0)
			{
				for(k=0;k<strlen(rep);k++,i++)
					str[i]=rep[k];
				return 0;
			}
		}
	}
	return 0;
}
int main(){
    char su[100],zu[100],tu[100];
    gets(su);
    gets(zu);
    gets(tu);
    int i,j,k,t;
    for(i=0;i<strlen(su);i++){
		for(k=0,j=i;su[j]==zu[k];j++,k++)
    if(k==strlen(zu))
    break;
    if(k==strlen(zu))
    break;
    }
    //printf("%d%d",i,j);
	if(j!=i-1){
    for(t=0;t<i;t++)
    printf("%c",su[t]);
    printf("%s",tu);
    for(t=j;t<strlen(su);t++)
		printf("%c",su[t]);}
	else
		printf("%s",su);
    return 0;
    }
void main()
{
	char a[256],b[256],c[256];
	gets(a);
	gets(b);
	gets(c);
	int q,w,e;
	q=strlen(a);
	w=strlen(b);
	e=strlen(c);
	int i,j,k;
	int result=1,d;
	for(k=0;k<q;k++)
	{
		if(a[k]==b[0])
		{
			result=1;
			for(i=k,j=0;i<w+k,j<w;i++,j++)
			{
				d=a[i]-b[j];
				if(d!=0)  result=0;
			}
			if(result)
			{
				for(i=k,j=0;j<e,i<w+k;i++,j++)
				{
					a[i]=c[j];
				}
				break;
			}
		}
	}
	puts(a);
}
//
//  main.cpp
//  ????
//
//  Created by ? ?? on 12-12-27.
//  Copyright (c) 2012? ? ??. All rights reserved.
//


int main()
{
    int i = 0;
    char string[300];
    char substring[300];
    char replace[300];
    cin >> string;
    cin >> substring;
    cin >> replace;
    int l = strlen(string);
    int l1 = strlen(substring);
    int l2 = strlen(replace);
    char *p = strstr(string, substring);
    if (p != NULL)
    {
        while(i < l2)
        {
            *p = replace[i];
            i++;
            p++;
        }
    }
    cout << string;
    return 0;
}
int main()
{
	char zfc1[257]={0},zfc2[257]={0},zfc3[257]={0},zichuan[257]={0};
	int len1,len2,i,j,k,t,flag=0;
	int temp;
	scanf("%s",zfc1);
	scanf("%s",zfc2);
	scanf("%s",zfc3);
	len1=strlen(zfc1);
	len2=strlen(zfc2);
	for(i=0;i<=len1-len2;i++)
	{
		for(j=0;j<len2;j++)
		{
			zichuan[j]=zfc1[j+i];
		}
		if(strcmp(zichuan,zfc2)==0)
		{
			flag=1;
			temp=i;
			break;
		}
	}
	if(flag==0)
	{
		printf("%s",zfc1);
	}
	else
	{
			for(k=0;k<temp;k++)
			{
				printf("%c",zfc1[k]);
			}
			printf("%s",zfc3);
			for(t=temp+len2;zfc1[t]!='\0';t++)
			{
				printf("%c",zfc1[t]);
			}
	}
	return 0;
}
int main(){
    char zfc[256],wt[256],tar[256];
	int i,j,tag;
	scanf("%s",zfc);
	scanf("%s",wt);
	scanf("%s",tar);
	int n=strlen(zfc);
	int k=strlen(wt);
	for(i=0;i<n-k+1;i++){
		tag=0;
		for(j=i;j<i+k;j++){
			if(zfc[j]!=wt[j-i]){
				tag=1;
				break;
			}
		}
		if(tag==0){
			for(j=i;j<i+k;j++){
				zfc[j]=tar[j-i];
			}
			break;
		}
	}
	puts(zfc);

	return 0;
}
char a[2000];
char sub[2000];
int b[2000];
int main()
{
	gets(a);
	gets(sub);
	int i=0,j=0,l=strlen(a),l_sub=strlen(sub);
	while(i<l)
	{
		for(j=0;j<l_sub;j++)
		{
			if(a[i+j]==sub[j])
			{
				b[i]++;
			}
		}
		i++;
	}
	int k=0,count=0,w=999;
	for(k=0;k<2000;k++)
	{
		if(b[k]==l_sub)
		{
			w=k;
			count++;
			break;
		}
	}
	char c[300];
	gets(c);
	int q=0;
	if(count!=0)
	{
	while(q<l)
	{
		if(q==w)
		{
			printf("%s",c);
			q+=l_sub;
		}
		if(q!=l)
		{printf("%c",a[q]);}
		q++;
	}
	}
	else if(count==0)
	{
		puts(a);
	}
	return 0;
}
main()
{
   char str[257];
   char sub[257];
   char rep[257];
   int i=0,j=0,k=0,a;
   gets(str);
   gets(sub);
   gets(rep);
   a=strlen(sub); 
   for(i=0;str[i]!='\0';i++)
   {                   
        if(str[i]==sub[j])
        {
          j++;                
          if(j==a)
          {
            k=i;
            break;
          }
        }   
        else j=0;
   }  
   for(i=0;str[i]!='\0';i++)
   {
      if(i==k-a+1)
      {
        printf("%s",rep);
        i=k;
      }
      else printf("%c",str[i]);
   } 
   getchar();
   getchar();
   getchar();
}
/*******************************
/* ?  ?: ????
/* ?  ?: ??? 1200012861
/* ?  ?: 2012?12?24?
*******************************/


int main()
{
	char str[260], subStr[260], replace[260], str2[260];
	char *start = str, *node = NULL, *rep = replace;
	int len, i = 0;
	cin >> str >> subStr >> replace;
	node = strstr(str, subStr); //??subStr???str???,??node?str???????,????
	if (node == NULL) //????
		cout << str; //?????
	else
	{
		while (start != node)
			str2[i++] = *start++; //????????????
		while (*rep != '\0')
			str2[i++] = *rep++; //?????????
		node += strlen(subStr); //node???????????
		while (*node != '\0') 
			str2[i++] = *node++; //????????????
		str2[i] = '\0'; //?????????
		cout << str2;
	}
	cout << endl;
	start = NULL; //????
	node = NULL;
	rep = NULL;
	return 0;
}
int main()
{
	char zfc1[257]={0},zfc2[257]={0},zfc3[257]={0},zichuan[257]={0};
	int len1,len2,i,j,k,t,flag=0;
	scanf("%s",zfc1);
	scanf("%s",zfc2);
	scanf("%s",zfc3);
	len1=strlen(zfc1);
	len2=strlen(zfc2);
	for(i=0;i<=len1-len2;i++)
	{
		for(j=0;j<len2;j++)
		{
			zichuan[j]=zfc1[j+i];
		}
		if(strcmp(zichuan,zfc2)==0)
		{
			for(k=0;k<i;k++)
			{
				printf("%c",zfc1[k]);
			}
			printf("%s",zfc3);
			for(t=i+len2;zfc1[t]!='\0';t++)
			{
				printf("%c",zfc1[t]);
			}
			flag=1;
			break;
		}
	}
	if(flag==0)
	{
		printf("%s",zfc1);
	}
	return 0;
}