/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
private static int children = 7;
{
List<School> list = new ArrayList<>( );
list.add(new School(0,20,0,"Ugly"));
list.add(new School(30,20,50,"Normal"));
list.add(new School(50,20,100,"Best"));
Optional<School> max = list.stream().max( (el1, el2) -> el1.getEducation() - el2.getEducation() );
if (max.isPresent()) {
School school = max.get();
school.setSpace(school.getSpace() - children);
}
School maxSchool = null;
for (School school : list) {
if (maxSchool == null) {
maxSchool = school;
} else if (maxSchool.getEducation() < school.getEducation()) {
maxSchool = school;
}
}
if (maxSchool != null) {
maxSchool.setSpace(maxSchool.getSpace() - children);
}
maxSchool
= Collections.
max( list,
new Comparator
<School
>() { @Override
public int compare(School o1, School o2) {
return o1.getEducation() - o2.getEducation();
}
} );
if (maxSchool != null) {
maxSchool.setSpace(maxSchool.getSpace() - children);
}
}
}
class School {
private int education = 0;
private int space = 20;
private int cost = 0;
public School
(int education,
int space,
int cost,
String name
) { this.cost = cost;
this.space = space;
this.education = education;
this.name = name;
}
public int getEducation() {
return education;
}
public void setEducation(int education) {
this.education = education;
}
public int getSpace() {
return space;
}
public void setSpace(int space) {
this.space = space;
}
public int getCost() {
return cost;
}
public void setCost(int cost) {
this.cost = cost;
}
return name;
}
public void setName
(String name
) { this.name = name;
}
@Override
return "School{" +
"education=" + education +
", space=" + space +
", cost=" + cost +
", name='" + name + '\'' +
'}';
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXByaXZhdGUgc3RhdGljIGludCBjaGlsZHJlbiA9IDc7CgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CiAgICAgICAgTGlzdDxTY2hvb2w+IGxpc3QgPSBuZXcgQXJyYXlMaXN0PD4oICApOwogICAgICAgIGxpc3QuYWRkKG5ldyBTY2hvb2woMCwyMCwwLCJVZ2x5IikpOwogICAgICAgIGxpc3QuYWRkKG5ldyBTY2hvb2woMzAsMjAsNTAsIk5vcm1hbCIpKTsKICAgICAgICBsaXN0LmFkZChuZXcgU2Nob29sKDUwLDIwLDEwMCwiQmVzdCIpKTsKCiAgICAgICAgT3B0aW9uYWw8U2Nob29sPiBtYXggPSBsaXN0LnN0cmVhbSgpLm1heCggKGVsMSwgZWwyKSAtPiBlbDEuZ2V0RWR1Y2F0aW9uKCkgLSBlbDIuZ2V0RWR1Y2F0aW9uKCkgKTsKICAgICAgICBpZiAobWF4LmlzUHJlc2VudCgpKSB7CiAgICAgICAgICAgIFNjaG9vbCBzY2hvb2wgPSBtYXguZ2V0KCk7CiAgICAgICAgICAgIHNjaG9vbC5zZXRTcGFjZShzY2hvb2wuZ2V0U3BhY2UoKSAtIGNoaWxkcmVuKTsKICAgICAgICB9CgoKICAgICAgICBTY2hvb2wgbWF4U2Nob29sID0gbnVsbDsKICAgICAgICBmb3IgKFNjaG9vbCBzY2hvb2wgOiBsaXN0KSB7CiAgICAgICAgICAgIGlmIChtYXhTY2hvb2wgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgbWF4U2Nob29sID0gc2Nob29sOwogICAgICAgICAgICB9IGVsc2UgaWYgKG1heFNjaG9vbC5nZXRFZHVjYXRpb24oKSA8IHNjaG9vbC5nZXRFZHVjYXRpb24oKSkgewogICAgICAgICAgICAgICAgbWF4U2Nob29sID0gc2Nob29sOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChtYXhTY2hvb2wgIT0gbnVsbCkgewogICAgICAgICAgICBtYXhTY2hvb2wuc2V0U3BhY2UobWF4U2Nob29sLmdldFNwYWNlKCkgLSBjaGlsZHJlbik7CiAgICAgICAgfQoKICAgICAgICBtYXhTY2hvb2wgPSBDb2xsZWN0aW9ucy5tYXgoIGxpc3QsIG5ldyBDb21wYXJhdG9yPFNjaG9vbD4oKSB7CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoU2Nob29sIG8xLCBTY2hvb2wgbzIpIHsKICAgICAgICAgICAgICAgIHJldHVybiBvMS5nZXRFZHVjYXRpb24oKSAtIG8yLmdldEVkdWNhdGlvbigpOwogICAgICAgICAgICB9CiAgICAgICAgfSApOwogICAgICAgIGlmIChtYXhTY2hvb2wgIT0gbnVsbCkgewogICAgICAgICAgICBtYXhTY2hvb2wuc2V0U3BhY2UobWF4U2Nob29sLmdldFNwYWNlKCkgLSBjaGlsZHJlbik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggbGlzdCApOwoJfQp9CgoKY2xhc3MgU2Nob29sIHsKCiAgICBwcml2YXRlIGludCBlZHVjYXRpb24gPSAwOwogICAgcHJpdmF0ZSBpbnQgc3BhY2UgPSAyMDsKICAgIHByaXZhdGUgaW50IGNvc3QgPSAwOwogICAgcHJpdmF0ZSBTdHJpbmcgbmFtZSA9ICIgIjsKCiAgICBwdWJsaWMgU2Nob29sKGludCBlZHVjYXRpb24sIGludCBzcGFjZSwgaW50IGNvc3QsIFN0cmluZyBuYW1lKSB7CiAgICAgICAgdGhpcy5jb3N0ID0gY29zdDsKICAgICAgICB0aGlzLnNwYWNlID0gc3BhY2U7CiAgICAgICAgdGhpcy5lZHVjYXRpb24gPSBlZHVjYXRpb247CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgIH0KCiAgICBwdWJsaWMgaW50IGdldEVkdWNhdGlvbigpIHsKICAgICAgICByZXR1cm4gZWR1Y2F0aW9uOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldEVkdWNhdGlvbihpbnQgZWR1Y2F0aW9uKSB7CiAgICAgICAgdGhpcy5lZHVjYXRpb24gPSBlZHVjYXRpb247CiAgICB9CgogICAgcHVibGljIGludCBnZXRTcGFjZSgpIHsKICAgICAgICByZXR1cm4gc3BhY2U7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0U3BhY2UoaW50IHNwYWNlKSB7CiAgICAgICAgdGhpcy5zcGFjZSA9IHNwYWNlOwogICAgfQoKICAgIHB1YmxpYyBpbnQgZ2V0Q29zdCgpIHsKICAgICAgICByZXR1cm4gY29zdDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRDb3N0KGludCBjb3N0KSB7CiAgICAgICAgdGhpcy5jb3N0ID0gY29zdDsKICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmFtZSkgewogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiAiU2Nob29seyIgKwogICAgICAgICAgICAgICAgImVkdWNhdGlvbj0iICsgZWR1Y2F0aW9uICsKICAgICAgICAgICAgICAgICIsIHNwYWNlPSIgKyBzcGFjZSArCiAgICAgICAgICAgICAgICAiLCBjb3N0PSIgKyBjb3N0ICsKICAgICAgICAgICAgICAgICIsIG5hbWU9JyIgKyBuYW1lICsgJ1wnJyArCiAgICAgICAgICAgICAgICAnfSc7CiAgICB9Cn0=
[School{education=0, space=20, cost=0, name='Ugly'}, School{education=30, space=20, cost=50, name='Normal'}, School{education=50, space=-1, cost=100, name='Best'}]