結果

問題 No.1034 テスターのふっぴーさん
ユーザー queeequeee
提出日時 2020-04-24 23:12:30
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 755 bytes
コンパイル時間 719 ms
コンパイル使用メモリ 72,192 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-15 03:46:39
合計ジャッジ時間 1,694 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <algorithm>

using namespace std; using ll=long long;

ll solve(ll n, ll x, ll y) {
  ll x1 = y, y1 = x, x2 = n-1LL-y, y2 = n-1LL-x;
  if (x1 == 0 || y1 == 0 || x2 == 0 || y2 == 0) {
    if (y1 == 0) return x1+1LL;
    else if (x2 == 0) return n + y1;
    else if (y2 == 0) return 2LL * n - 2LL + (n-x1);
    else if (x1 == 0) return 4LL * n - 3LL - y1;
  } else {
    ll mn = min({x1,y1,x2,y2});
    ll temp = 4LL * (mn * n - mn * (mn + 1LL) / 2LL);
    //cout<<"p: "<<temp<<" "<<n-2*mn<<" "<<x1-mn<<" "<<y1-mn<<" "<<mn<<endl;
    return temp + solve(n-2LL*mn, y1-mn, x1-mn);
  }
  return -1e18;
}

int main() {
  int q; cin>>q;
  for(int qq=0;qq<q;qq++) {
    ll n,x,y; cin>>n>>x>>y;
    cout<<solve(n,x,y)-1LL<<endl;
  }
}
0