#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[105],b[105],dp[105][105];
int w[10][10]={
{0,0,0,0,0,0},
{0,5,-1,-2,-1,-3},
{0,-1,5,-3,-2,-4},
{0,-2,-3,5,-2,-2},
{0,-1,-2,-2,5,-1},
{0,-3,-4,-2,-1,0},
};
int main()
{
cin >>n;
for (int i=1;i<=n;i++)
{
int t;
cin >>t;
if (t=='A')
{
a[i]=1;
break;
}
else if (t=='C')
{
a[i]=2;
break;
}
else if (t=='G')
{
a[i]=3;
break;
}
else if (t=='T')
{
a[i]=4;
break;
}
}
cin >>m;
//cout <<"1"<<endl;
for (int i=1;i<=m;i++)
{
int t;
cin >>t;
if (t=='A')
{
b[i]=1;
break;
}
else if (t=='C')
{
b[i]=2;
break;
}
else if (t=='G')
{
b[i]=3;
break;
}
else if (t=='T')
{
b[i]=4;
break;
}
}
dp[0][0]=0;
for (int i=1;i<=n;i++)
{
dp[i][0]=dp[i-1][0]+w[a[i]][5];
}
for (int i=1;i<=m;i++)
{
dp[0][i]=dp[0][i-1]+w[b[i]][5];
}
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
dp[i][j]=max(dp[i-1][j-1]+w[a[i]][b[j]],max(dp[i-1][j]+w[a[i]][5],dp[i][j-1]+w[5][b[j]]));
}
cout <<dp[n][m]<<endl;
return 0;
}
为什么读不进去啊,萌新求助QuQ