LIGHTS - Lights
Tác giả: khuc_tuan
Ngôn ngữ: Java
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader kb = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(kb.readLine());
char[] a = kb.readLine().toCharArray();
char[] b = kb.readLine().toCharArray();
boolean[] mark = new boolean[n];
int x = 0;
for (int i = 0; i < n; ++i)
if (a[i] == '1' && (i == 0 || (i > 0 && a[i - 1] == '0')))
++x;
for (int i = 0; i < n; ++i)
if (b[i] == '1' && (i == 0 || (i > 0 && b[i - 1] == '0')))
++x;
for (int i = 0; i < n; ++i) {
boolean oka, okb;
oka = a[i] == '0' ? (i > 0 && i + 1 < n && a[i - 1] == '1' && a[i + 1] == '1') : ((i == 0 || a[i - 1] == '0') && (i == n - 1 || a[i + 1] == '0'));
okb = b[i] == '0' ? (i > 0 && i + 1 < n && b[i - 1] == '1' && b[i + 1] == '1') : ((i == 0 || b[i - 1] == '0') && (i == n - 1 || b[i + 1] == '0'));
if (oka && okb && (i == 0 || !mark[i - 1])) {
mark[i] = true;
--x;
}
}
System.out.println(x);
}
}