#include<bits/stdc++.h>
using namespace std;
int dp[105][105];int mip[6][6]={{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 n,m;string a,b;
int k(char c){
if(c=='A') return 1;
if(c=='C') return 2;
if(c=='G') return 3;
else return 4;
}
int main(){
cin>>n;
cin>>a;
cin>>m;
cin>>b;
memset(dp,0,sizeof(dp))
for(int i=0;i<m;i++){
dp[i+1][0]=mip[5][k(b[i])];
}
for(int i=0;i<n;i++){
dp[0][i+1]=mip[5][k(a[i])];
}
dp[0][0]=0;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
dp[i][j]=max(dp[i-1][j-1]+mip[k(b[i-1])][k(a[j-1])],max(dp[i-1][j]+mip[5][k(b[i-1])],dp[i][j-1]+mip[5][k(a[j-1])]));
}
}
cout<<dp[m][n];
}
后面b串是i,a串是j(可能看着有些别扭)