// Resuelve el sudoku de un archivo, y comprueba si la solución es única.
#include <stdio.h>

#include "board.h"
#include "sudoku.h"

int main(int argc, char *argv[]) {
    if (argc != 2) {
        printf("uso: %s archivo\n", argv[0]);
        return 1;
    }
    Board puzzle;
    if (!board_load(argv[1], &puzzle)) {
        printf("no pude leer un tablero de %s\n", argv[1]);
        return 1;
    }

    Board solution;
    long nodes = 0;
    long found = sudoku_search(&puzzle, 2, &solution, &nodes);
    if (found == 0) {
        printf("sin solución, %ld nodos\n", nodes);
        return 0;
    }
    board_print(&solution);
    printf("%s, %ld nodos\n", found == 1 ? "solución única" : "más de una solución", nodes);
    return 0;
}
