AOJ - Problem 0159 : The Best Body

BMIが22に一番近い人の番号を出力する問題です。
入力では身長が[cm]で与えられるので[m]に変換するのを忘れないようにしましょう。

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;

int main(){
	int n;
	while( cin >> n , n ){
		double BMI[1000001];
		for(int i=0 ; i < 1000001 ; i++ ){
			BMI[i] = -1;
		}

		for(int i=0 ; i < n ; i++ ){
			int id,h,w;
			cin >> id >> h >> w;
			BMI[id] = fabs( 22.0 - (double) w / ( (h/100.0)*(h/100.0) ) );
		}
		double m = 1000.0;
		for(int i=0 ; i < 1000001 ; i++ ){
			if( BMI[i] != -1 )
				m = min( m , BMI[i] );
		}
		for(int i=0 ; i < 1000001 ; i++ ){
			if( BMI[i] == m ){
				cout << i << endl;
				break;
			}
		}
	}
}