Saturday, March 2, 2013

FIND THE CLONES SPOJ

//http://www.spoj.com/problems/CLONE/

//
#include<stdio.h>
#include<algorithm>
using namespace std;
int arr[100000]={0};
int main()
{
         int a,b,i,j,count,temp,val;
long double check,sum;
        scanf("%d %d",&a,&b);
        //int arr[2100];
        while(a&&b)
        {
                char s[100];
//int arr[a];
int hash[25000]={0};
                //k=1;
               
                        for(i=0;i<a;i++)
{
val=0;
scanf("%s",s);
for(j=0;j<b;j++)
{
if(s[j]=='A')
val=val*10+1;
else if(s[j]=='C')
val=val*10+2;
else if(s[j]=='G')
val=val*10+3;
else if(s[j]=='T')
val=val*10+4;
}
arr[i]=val;
                }

                sort(arr,arr+a);
               // int hash[a];
int k;
                /*for(k=0;k<=a;k++){
                        hash[k]=0;
//printf("%d ",arr[k]);
} */     
                count=1;
int flag=0;
check=arr[0];
for(i=1;i<a;i++)
{
if(arr[i]==check)
{
flag=0;
count++;
}
else
{
flag=1;
hash[count]++;
count=1;
check=arr[i];
}
}
hash[count]++;
                for(i=1;i<=a;i++)
                        printf("%d\n",hash[i]);
                //printf("\n");
                scanf("%d %d",&a,&b);
        }
        return 0;
}

No comments:

Post a Comment