#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  string a, b;
  cin >> n;
  cin >> a >> b;
  long long ans = 0;
  int umZero[n];
  int umUm[n];
  int zeroUm[n];
  int zeroZero[n];
  memset(umZero, 0, sizeof umZero);
  memset(umUm, 0, sizeof umUm);
  memset(zeroZero, 0, sizeof zeroZero);
  memset(zeroUm, 0, sizeof zeroUm);
  int i = n - 1;
  umZero[i] += (a[i] == '1' && b[i] == '0');
  umUm[i] += (a[i] == '1' && b[i] == '1');
  zeroZero[i] += (a[i] == '0' && b[i] == '0');
  zeroUm[i] += (a[i] == '0' && b[i] == '1');
  for (i = n - 2; i >= 0; i--) {
    umZero[i] += umZero[i + 1];
    umUm[i] += umUm[i + 1];
    zeroZero[i] += zeroZero[i + 1];
    zeroUm[i] += zeroUm[i + 1];
    umZero[i] += (a[i] == '1' && b[i] == '0');
    umUm[i] += (a[i] == '1' && b[i] == '1');
    zeroZero[i] += (a[i] == '0' && b[i] == '0');
    zeroUm[i] += (a[i] == '0' && b[i] == '1');
  }
  for (int i = 0; i < n; i++) {
    if (a[i] == '0' && b[i] == '1') {
      ans += umZero[i];
    } else if (a[i] == '0' && b[i] == '0') {
      ans += umZero[i] + umUm[i];
    } else if (a[i] == '1' && b[i] == '1') {
      ans += zeroZero[i];
    } else {
      ans += zeroZero[i] + zeroUm[i];
    }
  }
  printf("%lld\n", ans);
  return 0;
}
