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/