結果
問題 |
No.2057 Ising Model
|
ユーザー |
![]() |
提出日時 | 2022-08-28 20:18:16 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,014 bytes |
コンパイル時間 | 252 ms |
コンパイル使用メモリ | 40,812 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-15 17:23:24 |
合計ジャッジ時間 | 1,397 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 WA * 4 |
ソースコード
/* -*- coding: utf-8 -*- * * 2057.cc: No.2057 Ising Model - yukicoder */ #include<cstdio> #include<algorithm> 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 f0 = a * (n - 1) - b * n; ll f1 = -a * (n - 1) + b * n; ll f2 = -a * (n - 1) - b * (n & 1); printf("%lld\n", min(min(f0, f1), f2)); 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", ss[i]); putchar('\n'); } return 0; }