Cod sursa(job #260571)

Utilizator redkar23Dezactiveazama redkar23 Data 17 februarie 2009 11:16:30
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.5 kb
#include <fstream>

using namespace std;

fstream f;
fstream g;
int m,n;
int a[1024];
int b[1024];
int max1[1024];
int max2[1024];
int i,j;

void lsub()
{
        max1[m-1]=1;
        for(i=m-2;i>=0;i--)
        {
         if(a[i]>a[i+1])
            max1[i]=max1[i+1];
          else
            max1[i]=max1[i+1]+1;                     
         }
   
   max2[n-1]=1;
        for(i=n-2;i>=0;i--)
        {
         for(j=i;j<m-1;j++)
          if(b[i]>b[i+1])
             max2[i]=max2[i+1];
          else
             max2[i]=max2[i+1]+1;                     
         }
   
    int max,Max,aux;
    
    max = max1[0];
    Max = max2[0];
    
    if(m<n)
     for(i=0;i<m;i++)
     {
       for(j=0;j<n;j++)
          if(a[i]==b[j]&&max==max1[i])
            {
               g << a[i] << " ";
               max--;
               Max--; 
               break;           
            }
     }   
     else
      {
     for(i=0;i<n;i++)
       for(j=0;j<m;j++)
          if(b[i]==a[j]&&Max==max2[i])
            {
               g << b[i] << " ";
               max--;
               Max--;   
               break;         
            }
     }   
} 

void find()
{
     
}

int main()
{
    f.open("cmlsc.in",fstream::in);
    f >> m >> n;
    for(i=0;i<m;i++)
       f >> a[i]; 
    for(i=0;i<n;i++)
      f>> b[i];       
    f.close();
    
    
    g.open("cmlsc.out",fstream::out);
    lsub();
    g.close();    
    return 0;
    
}