Cod sursa(job #364818)

Utilizator lovestospoogestan marsh lovestospooge Data 16 noiembrie 2009 23:47:06
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.05 kb
#include<stdio.h>
#include<string.h>

int t,ok;
long n,m,i,k;

char s1[1000000],s2[1000000],c;

int main()
{
 freopen("1006.in","r",stdin);
 freopen("1006.out","w",stdout);
 
 scanf("%d", &t);
 
 for(i=1;i<=t;i++);
    {
     scanf("%s", &s1);
     scanf("%s", &s2);
     
     n=strlen(s1);
     m=strlen(s2);
     
     ok=0;
     k=0;
     
     if(n>=m) {
               while(ok==0 && k<=n-m)
                     {
                      if(strncmp(s1+k,s2,m)==0)
                                                  ok=1; //cuvantul s2 se afla in interioru celuilalt 
                      
                      k++;
                     }
               if(ok==1){
                          printf("%ld\n",n);
                          }
               } 
                   
        else   {
               while(ok==0 && k<=m-n)
                     {
                      if(strncmp(s1,s2+k,n)==0)
                                                  ok=1; //cuvantul s1 se afla in interioru celuilalt 
                      
                      k++;
                     }
               if(ok==1){
                          printf("%ld\n",m);
                          }
               }
      k=1;
      
    if(n>=m) 
     {
      while(ok==0 && k<=m-1)
       {
        if( strncmp(s1+(n-m+k),s2,m-k) ==0)
                                    ok=1;
        
             else if( strncmp(s1,s2+k,m-k) ==0)
                                                    ok=1;
        
        k++;
        } 
       if(ok==1) printf("%ld\n", n+k-1);
      } 
        
    else
     {
      while(ok==0 && k<=n-1)
       {
        if( strncmp(s2+(m-n+k),s1,n-k) ==0)
                                    ok=1;
        
             else if( strncmp(s2,s1+k,n-k) ==0)
                                                    ok=1;
        
        k++;
        }                
       if(ok==1) printf("%ld\n", m+k-1);        
      } 
      
      if(ok==0) printf("%ld\n", n+m); 

     }
 
 return 0;
}