import java.util.Scanner;
public class Main {
private static final Scanner scanner
= new Scanner
(System.
in);
private static class Person
implements Cloneable {
public double h;
public double w;
public double bmi;
public Person next;
@Override
public Person clone() {
Person p = new Person();
p.name = name;
p.h = h;
p.w = w;
p.bmi = bmi;
p.next = next;
return p;
}
};
public static void main
(String[] args
) {
Person list = null;
Person t = new Person();
while (true) {
t.name = scanner.next();
// 名前の 1 文字目が 0 なら処理終了
if(t.name.charAt(0) == '0') {
break;
}
t.h = scanner.nextDouble();
t.w = scanner.nextDouble();
t.bmi = t.w / ((t.h / 100) * (t.h / 100));
t.next = null;
list = add(list, t);
}
output(list);
pfree(list);
}
/**
* @return リストの先頭
*/
private static Person add(Person plist, Person newt) {
Person p = plist;
Person q = null;
Person r;
while (p != null) {
if(newt.bmi < p.bmi) {
break;
}
q = p;
p = p.next;
}
r = newt.clone();
r.next = p;
if (q != null) {
q.next = r;
} else {
plist = r;
}
return plist;
}
private static void output(Person p) {
while(true) {
if(p == null) {
break;
}
System.
out.
printf(" BMI > %.1f ", p.
bmi); System.
out.
printf(" 身長[cm] > %.1f ", p.
h); System.
out.
printf(" 体重[kg] > %.1f ", p.
w); System.
out.
printf(" 名前 > %s.%n", p.
name);
p = p.next;
}
}
private static void pfree(Person p) {
// nothing to do.
}
}
CgppbXBvcnQgamF2YS51dGlsLlNjYW5uZXI7CgoKcHVibGljIGNsYXNzIE1haW4gewoKCglwcml2YXRlIHN0YXRpYyBmaW5hbCBTY2FubmVyIHNjYW5uZXIgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoKCglwcml2YXRlIHN0YXRpYyBjbGFzcyBQZXJzb24gaW1wbGVtZW50cyBDbG9uZWFibGUgewoKCQlwdWJsaWMgU3RyaW5nIG5hbWU7CgkJcHVibGljIGRvdWJsZSBoOwoJCXB1YmxpYyBkb3VibGUgdzsKCQlwdWJsaWMgZG91YmxlIGJtaTsKCQlwdWJsaWMgUGVyc29uIG5leHQ7CgoJCUBPdmVycmlkZQoJCXB1YmxpYyBQZXJzb24gY2xvbmUoKSB7CgoJCQlQZXJzb24gcCA9IG5ldyBQZXJzb24oKTsKCQkJcC5uYW1lID0gbmFtZTsKCQkJcC5oICAgID0gaDsKCQkJcC53ICAgID0gdzsKCQkJcC5ibWkgID0gYm1pOwoJCQlwLm5leHQgPSBuZXh0OwoKCQkJcmV0dXJuIHA7CgkJfQoJfTsKCgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKCQlQZXJzb24gbGlzdCA9IG51bGw7CgkJUGVyc29uIHQgPSBuZXcgUGVyc29uKCk7CgoJCXdoaWxlICh0cnVlKSB7CgoJCQl0Lm5hbWUgPSBzY2FubmVyLm5leHQoKTsKCgkJCS8vIOWQjeWJjeOBriAxIOaWh+Wtl+ebruOBjCAwIOOBquOCieWHpueQhue1guS6hgoJCQlpZih0Lm5hbWUuY2hhckF0KDApID09ICcwJykgewoJCQkJYnJlYWs7CgkJCX0KCgkJCXQuaCAgID0gc2Nhbm5lci5uZXh0RG91YmxlKCk7CgkJCXQudyAgID0gc2Nhbm5lci5uZXh0RG91YmxlKCk7CgkJCXQuYm1pID0gdC53IC8gKCh0LmggLyAxMDApICogKHQuaCAvIDEwMCkpOwoKCQkJdC5uZXh0ID0gbnVsbDsKCgkJCWxpc3QgPSBhZGQobGlzdCwgdCk7CgkJfQoKCQlvdXRwdXQobGlzdCk7CgkJcGZyZWUobGlzdCk7CgoJCVN5c3RlbS5leGl0KDApOwoJfQoKCgkvKioKCSAqIEByZXR1cm4g44Oq44K544OI44Gu5YWI6aCtCgkgKi8KCXByaXZhdGUgc3RhdGljIFBlcnNvbiBhZGQoUGVyc29uIHBsaXN0LCBQZXJzb24gbmV3dCkgewoKCQlQZXJzb24gcCA9IHBsaXN0OwoJCVBlcnNvbiBxID0gbnVsbDsKCQlQZXJzb24gcjsKCgkJd2hpbGUgKHAgIT0gbnVsbCkgewoKCQkJaWYobmV3dC5ibWkgPCBwLmJtaSkgewoJCQkJYnJlYWs7CgkJCX0KCgkJCXEgPSBwOwoJCQlwID0gcC5uZXh0OwoJCX0KCgkJciA9IG5ld3QuY2xvbmUoKTsKCQlyLm5leHQgPSBwOwoKCQlpZiAocSAhPSBudWxsKSB7CgkJCXEubmV4dCA9IHI7CgkJfSBlbHNlIHsKCQkJcGxpc3QgPSByOwoJCX0KCgkJcmV0dXJuIHBsaXN0OwoJfQoKCglwcml2YXRlIHN0YXRpYyB2b2lkIG91dHB1dChQZXJzb24gcCkgewoKCQl3aGlsZSh0cnVlKSB7CgoJCQlpZihwID09IG51bGwpIHsKCQkJCWJyZWFrOwoJCQl9CgoJCQlTeXN0ZW0ub3V0LnByaW50ZigiIEJNSSA+ICUuMWYgIiwgICAgICBwLmJtaSk7CgkJCVN5c3RlbS5vdXQucHJpbnRmKCIg6Lqr6ZW3W2NtXSA+ICUuMWYgIiwgcC5oKTsKCQkJU3lzdGVtLm91dC5wcmludGYoIiDkvZPph41ba2ddID4gJS4xZiAiLCBwLncpOwoJCQlTeXN0ZW0ub3V0LnByaW50ZigiIOWQjeWJjSA+ICVzLiVuIiwgICAgIHAubmFtZSk7CgoJCQlwID0gcC5uZXh0OwoJCX0KCX0KCgoJcHJpdmF0ZSBzdGF0aWMgdm9pZCBwZnJlZShQZXJzb24gcCkgewoKCQkvLyBub3RoaW5nIHRvIGRvLgoJfQp9Cg==