#include<bits/stdc++.h>
using namespace std;
int b[150],len1,len2,f[110][110];
string st1,st2;
int main()
{
b['A']=1;b['C']=2;b['G']=3;b['T']=4;b[' ']=5;
int a[10][10]={{},{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}};
cin>>len1>>st1>>len2>>st2;
if(len2>len1) swap(len2,len1),swap(st1,st2);
f[0][0]=a[b[st1[0]]][b[st2[0]]];
f[0][1]=a[b[st1[0]]][b[' ']];
for(int i=2;i<=len1-len2;i++) f[0][i]=0x8f8f8f8f;
for(int i=1;i<=len1-1;i++)
{
f[i][0]=f[i-1][0]+a[b[st1[i]]][b[st2[i]]];
for(int j=1;j<=len1-len2;j++)
f[i][j]=max(f[i-1][j]+a[b[st1[i]]][b[st2[i-j]]],f[i-1][j-1]+a[b[st1[i]]][b[' ']]);
}
cout<<f[len1-1][len1-len2];
}
错2 3 7 8 9 10 6个点