はまやんはまやんはまやん

hamayanhamayan's blog

Palace [AtCoder Beginner Contest 113 B]

https://beta.atcoder.jp/contests/abc113/tasks/abc113_b

解説

https://beta.atcoder.jp/contests/abc113/submissions/3558578

温度がT-H[i]*0.006であり、小数になる可能性があるので、doubleで計算していこう。
全ての高さについて全探索しよう。
温度差はabs(A-t)で求められる。
これまでの温度差の最小値dminを保持しておき、その時の添字も保持しておくと、答えが出せる。

int N, T, A, H[1010];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> T >> A;
    rep(i, 0, N) cin >> H[i];
 
    double dmin = 1e9, ans = -1;
    rep(i, 0, N) {
        double t = T - H[i] * 0.006;
        double d = abs(A - t);
        if (d < dmin) {
            dmin = d;
            ans = i;
        }
    }
    cout << (ans + 1) << endl;
}