spadyのメモ帳

技術ブログにしたいけどどうなることやら。まだ素人

JOI2019/2020 一次予選第三回 A問題解説

X に最も近い値 (The Nearest Value)

問題

問題文

整数X,L,R が与えられる.
L以上R以下の整数のうち, Xとの差の絶対値が最も小さいものを出力せよ.
そのような整数はちょうど 1 つだけ存在することが証明できる.

制約

1≦X≦100000. 1≦L≦R≦100000.

入力

入力は以下の形式で標準入力から与えられる

X L R

※問題文、制約、入力の情報は日本情報オリンピック委員会に帰属し、CC4.0 BY-SAで提供されています。 また本記事はCC4.0 BY-SAを継承しています。

解説

入力される数字は次の3つに場合分けされる。

 X < Lのとき
  Lの値を出力する
 L ≦ X≦ Rのとき
  Xの値を出力する
 R < Xのとき
  Rの値を出力する

ACコード

#include<bits/stdc++.h>
using namespace std;

int main(){
    int X,L,R;
    cin >> X >> L >> R;
    if(X < L){
        cout << L;
    }else if(L <= X && X <= R){
        cout << X;
    }else{
        cout << R;
    }
}