#pragma once
#include "solution.hpp"

// First-improvement 2-edge swap local search.
// Repeatedly scans all pairs of solution edges and applies the first
// improving reconnection found, restarting the scan after each swap.
// Returns true if any improvement was made.
//
// Single scan: O(k²) = O(n²)  where k = |sol.edges| <= n-1
bool vnd1(Solution& sol);
bool vnd1bi(Solution& sol);
