/* -*- coding: utf-8 -*- * * 2057.cc: No.2057 Ising Model - yukicoder */ #include #include using namespace std; /* constant */ const long long LINF = 1LL << 62; /* typedef */ typedef long long ll; /* global variables */ /* subroutines */ /* main */ int main() { ll n; int a, b; scanf("%lld%d%d", &n, &a, &b); ll minf = a * (n - 1) - b * n; if (n & 1) minf = min(minf, -a * (n - 1) - b); else minf = min(minf, min(-a * (n - 1), -a * (n - 2) + a - b * 2)); printf("%lld\n", minf); if (false) { int nbits = 1 << n, ss[20], minss[20]; ll minf = LINF; for (int bits = 0; bits < nbits; bits++) { for (int i = 0, bi = 1; i < n; i++, bi <<= 1) ss[i] = (bits & bi) ? -1 : 1; ll f = 0; for (int i = 0; i + 1 < n; i++) f += a * ss[i] * ss[i + 1]; for (int i = 0; i < n; i++) f -= b * ss[i]; if (minf > f) minf = f, copy(ss, ss + n, minss); } printf("%lld:", minf); for (int i = 0; i < n; i++) printf(" %d", minss[i]); putchar('\n'); } return 0; }