| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
They above r saying : it's very difficult (more than u think) .. :>In Reply To:why tle???????????? Posted by:suby at 2006-01-12 10:09:34 > #include <stdio.h>
> #include <math.h>
> #include <string.h>
> #include <limits.h>
> char s1[50010],s2[50010];
> int n1,n2;
> int t[50003],b[50003];
> int d[4][4]={{0,5,5,5},{5,0,4,5},{5,4,0,5},{5,5,5,0}};
> int main()
> {
> int i,j,check;
> while(scanf("%s",s1)!=EOF)
> {
> if(scanf("%s",s2)==EOF)
> break;
> n1=(int)strlen(s1);
> n2=(int)strlen(s2);
> for(i=0;i<n1;i++)
> {
> switch(s1[i])
> {
> case 'A':
> s1[i]=0;
> break;
> case 'G':
> s1[i]=1;
> break;
> case 'C':
> s1[i]=2;
> break;
> case 'T':
> s1[i]=3;
> break;
> }
> }
> for(i=0;i<n2;i++)
> {
> switch(s2[i])
> {
> case 'A':
> s2[i]=0;
> break;
> case 'G':
> s2[i]=1;
> break;
> case 'C':
> s2[i]=2;
> break;
> case 'T':
> s2[i]=3;
> break;
> }
> }
> check=10;
> i=0;
> j=i-n1/check;
> if(j<0)
> j=0;
> for(;j<=i+n1/check && j<=n2;j++)
> {
> b[j]=100000000;
> }
> b[0]=0;
> for(i=0;i<=n1;i++)
> {
> j=i-n1/check;
> if(j<0)
> j=0;
> for(;j<=i+n1/check && j<=n2;j++)
> {
> t[j]=b[j];
> }
> j=i+1-n1/check;
> if(j<0)
> j=0;
> for(;j<=i+1+n1/check && j<=n2;j++)
> {
> b[j]=100000000;
> }
> j=i-n1/check;
> if(j<0)
> j=0;
> for(;j<=i+n1/check && j<=n2;j++)
> {
> if(i<n1 && j<n2 && b[j+1]>d[s1[i]][s2[j]]+t[j])
> b[j+1]=d[s1[i]][s2[j]]+t[j];
> if(b[j]>3+t[j])
> b[j]=3+t[j];
> if(t[j+1]>3+t[j])
> t[j+1]=3+t[j];
> }
> }
> printf("%d\n",t[n2]);
> }
> return 0;
> }
>
> this is my code.
>
> please help me
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator