#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
#define MN 55
const ll inf = 999999999999999999LL;
int n, before[MN], after[MN], houseCost[MN], roadCost, diff[MN];
ll D[MN][MN], res, d[MN];
char chk[MN], g[MN][MN];
inline ll f(int u, int v) {
ll v1 = (ll)(before[u]) * diff[v] * houseCost[v] + (ll)(after[v]) * diff[u] * houseCost[u];
ll v2 = (ll)(before[v]) * diff[u] * houseCost[u] + (ll)(after[u]) * diff[v] * houseCost[v];
return min(v1, v2);
}
void prim(int v) {
res += d[v];
chk[v] = 1;
int i, bi = -1;
ll mincost = inf;
for (i = 0; i < n; i++) {
if (D[v][i] < d[i]) {
d[i] = D[v][i];
}
if (!chk[i] && d[i] < mincost) {
mincost = d[i];
bi = i;
}
}
if (bi >= 0) prim(bi);
}
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &before[i]);
for (int i = 0; i < n; i++) scanf("%d", &after[i]);
for (int i = 0; i < n; i++) scanf("%d", &houseCost[i]);
for (int i = 0; i < n; i++) scanf("%s", g[i]);
scanf("%d", &roadCost);
for (int i = 0; i < n; i++) {
diff[i] = after[i] - before[i];
res += ((long long)(diff[i]) * (before[i] + after[i] - 1) / 2) * houseCost[i];
d[i] = inf;
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (g[i][j] == 'Y') D[i][j] = 0, res += f(i, j);
else D[i][j] = (before[i] + before[j]) * (long long)(roadCost)+f(i, j);
D[j][i] = D[i][j];
}
}
d[0] = 0;
prim(0);
printf("%lld", res);
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CiNkZWZpbmUgTU4gNTUKY29uc3QgbGwgaW5mID0gOTk5OTk5OTk5OTk5OTk5OTk5TEw7CmludCBuLCBiZWZvcmVbTU5dLCBhZnRlcltNTl0sIGhvdXNlQ29zdFtNTl0sIHJvYWRDb3N0LCBkaWZmW01OXTsKbGwgRFtNTl1bTU5dLCByZXMsIGRbTU5dOwpjaGFyIGNoa1tNTl0sIGdbTU5dW01OXTsKaW5saW5lIGxsIGYoaW50IHUsIGludCB2KSB7CglsbCB2MSA9IChsbCkoYmVmb3JlW3VdKSAqIGRpZmZbdl0gKiBob3VzZUNvc3Rbdl0gKyAobGwpKGFmdGVyW3ZdKSAqIGRpZmZbdV0gKiBob3VzZUNvc3RbdV07CglsbCB2MiA9IChsbCkoYmVmb3JlW3ZdKSAqIGRpZmZbdV0gKiBob3VzZUNvc3RbdV0gKyAobGwpKGFmdGVyW3VdKSAqIGRpZmZbdl0gKiBob3VzZUNvc3Rbdl07CglyZXR1cm4gbWluKHYxLCB2Mik7Cn0Kdm9pZCBwcmltKGludCB2KSB7CglyZXMgKz0gZFt2XTsKCWNoa1t2XSA9IDE7CglpbnQgaSwgYmkgPSAtMTsKCWxsIG1pbmNvc3QgPSBpbmY7Cglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJaWYgKERbdl1baV0gPCBkW2ldKSB7CgkJCWRbaV0gPSBEW3ZdW2ldOwoJCX0KCQlpZiAoIWNoa1tpXSAmJiBkW2ldIDwgbWluY29zdCkgewoJCQltaW5jb3N0ID0gZFtpXTsKCQkJYmkgPSBpOwoJCX0KCX0KCWlmIChiaSA+PSAwKSBwcmltKGJpKTsKfQppbnQgbWFpbigpIHsKCXNjYW5mKCIlZCIsICZuKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBzY2FuZigiJWQiLCAmYmVmb3JlW2ldKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBzY2FuZigiJWQiLCAmYWZ0ZXJbaV0pOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHNjYW5mKCIlZCIsICZob3VzZUNvc3RbaV0pOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHNjYW5mKCIlcyIsIGdbaV0pOwoJc2NhbmYoIiVkIiwgJnJvYWRDb3N0KTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJZGlmZltpXSA9IGFmdGVyW2ldIC0gYmVmb3JlW2ldOwoJCXJlcyArPSAoKGxvbmcgbG9uZykoZGlmZltpXSkgKiAoYmVmb3JlW2ldICsgYWZ0ZXJbaV0gLSAxKSAvIDIpICogaG91c2VDb3N0W2ldOwoJCWRbaV0gPSBpbmY7Cgl9Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCWZvciAoaW50IGogPSBpICsgMTsgaiA8IG47IGorKykgewoJCQlpZiAoZ1tpXVtqXSA9PSAnWScpIERbaV1bal0gPSAwLCByZXMgKz0gZihpLCBqKTsKCQkJZWxzZSBEW2ldW2pdID0gKGJlZm9yZVtpXSArIGJlZm9yZVtqXSkgKiAobG9uZyBsb25nKShyb2FkQ29zdCkrZihpLCBqKTsKCQkJRFtqXVtpXSA9IERbaV1bal07CgkJfQoJfQoJZFswXSA9IDA7CglwcmltKDApOwoJcHJpbnRmKCIlbGxkIiwgcmVzKTsKfQ==