結果
| 問題 | 
                            No.126 2基のエレベータ
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2015-01-02 22:43:14 | 
| 言語 | PyPy2  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 75 ms / 5,000 ms | 
| コード長 | 851 bytes | 
| コンパイル時間 | 1,732 ms | 
| コンパイル使用メモリ | 76,720 KB | 
| 実行使用メモリ | 75,816 KB | 
| 最終ジャッジ日時 | 2024-10-10 18:22:02 | 
| 合計ジャッジ時間 | 5,026 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 27 | 
ソースコード
# -*- coding: utf-8 -*-
A, B, S = map(int, raw_input().split())
assert 0 <= A <= 100
assert 1 <= B <= 100
assert 1 <= S <= 100
if S == 1 or abs(A - S) <= abs(B - S):
    # first use elevator A
    print S + abs(A - S)
else:
    # first use elevator B
    if A == 0:
        # エレベータBで1Fまで行く
        # エレベータAがB1F->1F->B1F
        if B >= S:
                print (B - 1) + 2
        else:
                print (S - B) + S + 1
    else:
        # エレベータBが迎えに来て、エレベータBでエレベータAまで行き、Aで地下一階まで降りる。
        # エレベータBが迎えに来て、エレベータBで1Fまでいき、下ボタンを押しエレベータAを呼び、B1Fまで行く。
        # の最小値
        print min(abs(B - S) + abs(S - A) + A, abs(B - S) + abs(S - 1) + A)