package contests.contest27;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by sherxon on 4/8/17.
*/
public class BrickWall {
static public int leastBricks(List<List<Integer>> wall) {
if (wall.size() == 0) return 0;
Map<Integer, Integer> map = new HashMap<>();
int max = 0;
int sum = 0;
for (int i = 0; i < wall.get(0).size(); i++) {
sum += wall.get(0).get(i);
}
for (int i = 0; i < wall.size(); i++) {
List<Integer> row = wall.get(i);
int value = 1;
if (map.containsKey(row.get(0)))
value = map.get(row.get(0)) + 1;
map.put(row.get(0), value);
if (row.get(0) != sum)
max = Math.max(value, max);
for (int j = 1; j < row.size(); j++) {
row.set(j, row.get(j) + row.get(j - 1));
value = 1;
if (map.containsKey(row.get(j)))
value = map.get(row.get(j)) + 1;
map.put(row.get(j), value);
if (row.get(j) != sum)
max = Math.max(value, max);
}
}
return wall.size() - max;
}
}