#pragma once #include #include #include #define SWAP(T, a, b) \ do { \ T tmp = a; \ a = b; \ b = tmp; \ } while (0)