寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

Aizu Online Judge in C++ #Volume6 - 0669 : The Nearest Value

Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。

・問題 "The Nearest Value"
https://onlinejudge.u-aizu.ac.jp/problems/0669
整数 X,L,R が与えられる. L 以上 R 以下の整数のうち,X との差の絶対値が最も小さいものを出力せよ.
そのような整数はちょうど 1 つだけ存在することが証明できる.

僕が作成、提出したコードは、以下のとおりです。

Aizu Online Judge in C++ #Volume6 - 0669 : The Nearest Value
/*
Aizu Online Judge in C++ #Volume6 - 0669 : The Nearest Value
https://onlinejudge.u-aizu.ac.jp/problems/0669
 提出コードの解答例
 https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int x,l,r;
    cin>>x>>l>>r;
    vector< pair<int,int> > v;
    for(int i=l;i<=r;i++){
        v.push_back({abs(x-i),i});
    }
    sort(v.begin(),v.end());
    cout<<v[0].second<<endl;
    return 0;
}

設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/