結果
問題 | No.1034 テスターのふっぴーさん |
ユーザー |
![]() |
提出日時 | 2020-04-24 21:40:32 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,005 bytes |
コンパイル時間 | 1,555 ms |
コンパイル使用メモリ | 168,912 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-15 02:35:36 |
合計ジャッジ時間 | 2,415 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
#include <bits/stdc++.h> using namespace std; using lint = long long; const lint inf = 1LL << 60; const lint mod = 1000000007; int main() { cin.tie(nullptr); ios::sync_with_stdio(false); lint q; cin >> q; vector<lint> n(q), x(q), y(q); for (int i = 0; i < q; ++i) { cin >> n[i] >> x[i] >> y[i]; } for (int i = 0; i < q; ++i) { lint dist = min({x[i], n[i] - 1 - x[i], y[i], n[i] - 1 - y[i]}); lint ret = (n[i] * 4 - 4 + (n[i] - 2 * (dist - 1)) * 4 - 4) * dist / 2; if (dist == x[i]) { ret += y[i] - dist; } else if (dist == n[i] - 1 - y[i]) { ret += n[i] - dist * 2 - 1; ret += x[i] - dist; } else if (dist == n[i] - 1 - x[i]) { ret += (n[i] - dist * 2) * 2 - 2; ret += n[i] - 1 - dist - y[i]; } else { ret += (n[i] - dist * 2) * 3 - 3; ret += n[i] - 1 - dist - x[i]; } cout << ret << "\n"; } return 0; }