# Corrección M87 - Mundial Pronósticos Laravel 12

## Problema corregido

El partido **M87** corresponde a:

```txt
1K vs 3DEIJL
```

El sistema anterior asignaba los mejores terceros en orden simple. Eso podía consumir antes los terceros de los grupos D, E, I, J o L y dejar el partido M87 sin rival, mostrando `3DEIJL` bloqueado.

## Solución aplicada

El archivo `app/Services/ServicioTorneo.php` fue corregido para usar **backtracking** al asignar los mejores terceros. De esta forma, el sistema busca una combinación válida para todos los cruces:

```txt
M74 = 1E vs 3ABCDF
M77 = 1I vs 3CDFGH
M79 = 1A vs 3CEFHI
M80 = 1L vs 3EHIJK
M81 = 1D vs 3BEFIJ
M82 = 1G vs 3AEHIJ
M85 = 1B vs 3EFGIJ
M87 = 1K vs 3DEIJL
```

## Pasos para aplicar

1. Copia el archivo:

```txt
app/Services/ServicioTorneo.php
```

2. Limpia caché:

```bash
php artisan optimize:clear
```

3. Borra los pronósticos ya generados de eliminación directa para tu usuario o vuelve a calcular desde el botón **Calcular dieciseisavos**.

Si quieres limpiar solo las rondas posteriores desde base de datos:

```sql
DELETE p
FROM pronosticos p
JOIN partidos m ON m.id = p.partido_id
WHERE m.fase IN ('dieciseisavos','octavos','cuartos','semifinales','tercer_puesto','final');
```

En PostgreSQL:

```sql
DELETE FROM pronosticos p
USING partidos m
WHERE m.id = p.partido_id
AND m.fase IN ('dieciseisavos','octavos','cuartos','semifinales','tercer_puesto','final');
```

Luego vuelve a presionar **Calcular dieciseisavos**.
