Cod sursa(job #491009)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 9 octombrie 2010 11:45:41
Problema Cel mai lung subsir comun Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>
#include <stdlib.h>
FILE *f,*g;
int m,n,a[258],b[258];

int min(int x,int y){
 if(x>y) return x;
 else return y;
}

int main(){
  int i,j;
		f=fopen("cmlsc.in","r");
		g=fopen("cmlsc.out","w");

		fscanf(f,"%d %d",&m,&n);
		int x;
		for(i=1;i<=m;i++)
		  {
		   fscanf(f,"%d",&x);
		   a[x]++;
		  }
		for(i=1;i<=n;i++)
		  {
		   fscanf(f,"%d",&x);
		   b[x]++;
		  }
		fclose(f);

		long nr=0;
		int k=0;
		for(i=1;i<=256;i++)
		  {
		   if(a[i]!=0 && b[i]!=0) {
			 nr+=min(a[i],b[i]);
			 k++;
			 b[k]=min(a[i],b[i]);
			 a[k]=i;
           }
		  }
		fprintf(g,"%ld\n",nr);

	 /*	for(i=1;i<=k;i++)
		  {
		   if(b[k]==1)
			 fprintf(g,"%d ",a[i]);
		   else
			 for(j=1;j<=b[k];j++)
			   {
				fprintf(g,"%d ",a[i]);
			   }
		  } */
		fclose(f);
return 0;
}