diff --git a/cs677/pa2/sequential.cc b/cs677/pa2/sequential.cc index 8f79c3d..c23b1ff 100644 --- a/cs677/pa2/sequential.cc +++ b/cs677/pa2/sequential.cc @@ -45,9 +45,37 @@ void similarityMatrix(vector & s, vector & t) { int s_size = s.size(); int t_size = t.size(); - unsigned int F[s_size][t_size]; + int F[s_size][t_size]; for (int i = 0; i < t_size; i++) F[0][i] = 0; for (int i = 0; i < s_size; i++) F[i][0] = 0; + for (int i = 1; i < s_size; i++) + { + for (int j = 1; j < t_size; j++) + { + F[i][j] = + max( + max( + F[i][j-1] - 2, + F[i-1][j-1] + (s[i] == t[j] ? 1 : -1) + ), + max( + F[i-1][j] - 2, + 0 + ) + ); + } + } +#if 0 + cout << "Matrix: " << s_size << " x " << t_size << endl; + for (int i = 0; i < s_size; i++) + { + for (int j = 0; j < t_size; j++) + { + printf("%02d ", F[i][j]); + } + printf("\n"); + } +#endif }