結果
問題 | No.131 マンハッタン距離 |
ユーザー |
![]() |
提出日時 | 2019-03-15 00:38:19 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 716 bytes |
コンパイル時間 | 1,343 ms |
コンパイル使用メモリ | 158,548 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-27 14:35:39 |
合計ジャッジ時間 | 2,227 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long LL; int main() { // 1. 入力情報取得. LL X, Y, D; cin >> X >> Y >> D; // 2. マンハッタン距離D の 格子点の数は? // (D, 0), (D - 1, 1), (D - 2, 2), ..., (2, D - 2), (1, D - 1), (0, D) // から, 条件を満たしているものを抽出. // ex. // 大雑把には, X + Y = D - 1 なら 0個, X + Y = D なら 1個, X + Y = D + 1 なら 2個, ..., と見ることが出来そう. // // ex. // 2 4 3 -> 答えは, 3 のはず. X = min(X, D), Y = min(Y, D); LL ans = max(0LL, min(X + Y - D + 1, D + 1LL)); // 3. 出力. cout << ans << endl; return 0; }