Você pode resolver esse problema usando programação dinâmica. Aqui está um exemplo de programa em Python que retorna o menor custo possível para pintar todas as casas, dada a matriz de custos:

```python
def min_cost_painting(custos):
    n = len(custos)

    if n == 0:
        return 0

    # Inicializa a matriz de programação dinâmica
    dp = [[0 for _ in range(3)] for _ in range(n)]

    # Preenche a primeira linha da matriz com os custos iniciais
    dp[0] = custos[0]

    # Preenche o restante da matriz
    for i in range(1, n):
        dp[i][0] = custos[i][0] + min(dp[i - 1][1], dp[i - 1][2])
        dp[i][1] = custos[i][1] + min(dp[i - 1][0], dp[i - 1][2])
        dp[i][2] = custos[i][2] + min(dp[i - 1][0], dp[i - 1][1])

    return min(dp[-1])  # Retorna o menor custo da última casa


# Exemplo de uso
custos = [
    [17, 2, 17],
    [16, 16, 5],
    [14, 3, 19]
]

print(min_cost_painting(custos))  # Saída: 10

```

Neste exemplo, a função `min_cost_painting` recebe a matriz de custos como entrada e retorna o menor custo possível para pintar todas as casas da rua. A função utiliza programação dinâmica para calcular o menor custo cumulativo em cada etapa, garantindo que não haja duas casas adjacentes com a mesma cor.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence