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);
	}
}

Download