import java.util.ArrayList ;
class Student {
int [ ] mark;
double gwa;
public Student( )
{
name = null ;
mark = null ;
gwa = 0.0 ;
}
name = x[ 0 ] ;
mark = new int [ 4 ] ;
gwa = ( mark[ 0 ] + mark[ 1 ] + mark[ 2 ] + mark[ 3 ] + mark[ 3 ] ) / 5.0 ;
}
return name + "(GWA: " + gwa + ")" ;
}
}
class StudentDetails {
Student[ ] s;
public StudentDetails( ) {
s = null ;
}
public void init
( String [ ] [ ] x
) { s = new Student[ x.length ] ;
for ( int i = 0 ; i < s.length ; ++ i)
s[ i] = new Student( x[ i] ) ;
}
public Student getHighestGWA( ) {
int maxIndex = 0 ;
for ( int i = 1 ; i < s.length ; ++ i)
if ( s[ i] .gwa > s[ maxIndex] .gwa )
maxIndex = i;
return s[ maxIndex] ;
}
public Student getLowestGWA( ) {
int minIndex = 0 ;
for ( int i = 1 ; i < s.length ; ++ i)
if ( s[ i] .gwa < s[ minIndex] .gwa )
minIndex = i;
return s[ minIndex] ;
}
public Student getHighestPrelim( ) {
int maxIndex = 0 ;
for ( int i = 1 ; i < s.length ; ++ i)
if ( s[ i] .mark [ 0 ] > s[ maxIndex] .mark [ 0 ] )
maxIndex = i;
return s[ maxIndex] ;
}
public Student getHighestMidterm( ) {
int maxIndex = 0 ;
for ( int i = 1 ; i < s.length ; ++ i)
if ( s[ i] .mark [ 1 ] > s[ maxIndex] .mark [ 1 ] )
maxIndex = i;
return s[ maxIndex] ;
}
public Student getHighestPreFinal( ) {
int maxIndex = 0 ;
for ( int i = 1 ; i < s.length ; ++ i)
if ( s[ i] .mark [ 2 ] > s[ maxIndex] .mark [ 2 ] )
maxIndex = i;
return s[ maxIndex] ;
}
public Student getHighestFinal( ) {
int maxIndex = 0 ;
for ( int i = 1 ; i < s.length ; ++ i)
if ( s[ i] .mark [ 3 ] > s[ maxIndex] .mark [ 3 ] )
maxIndex = i;
return s[ maxIndex] ;
}
public ArrayList< Student> getPassList( ) {
ArrayList< Student> passList = new ArrayList< Student> ( ) ;
for ( int i = 0 ; i < s.length ; ++ i)
if ( s[ i] .gwa >= 75.0 )
passList.add ( s[ i] ) ;
return passList;
}
public ArrayList< Student> getFailList( ) {
ArrayList< Student> passList = new ArrayList< Student> ( ) ;
for ( int i = 0 ; i < s.length ; ++ i)
if ( s[ i] .gwa < 75.0 )
passList.add ( s[ i] ) ;
return passList;
}
}
public class Main {
public static void main
( String [ ] args
) { { "Francis M. Reyes" , "92" , "89" , "93" , "94" } ,
{ "Joseph E. Estrada" , "80" , "70" , "81" , "78" } ,
{ "Ferdinand E. Marcos" , "77" , "93" , "83" , "90" } ,
{ "Cory C. Aquino" , "78" , "73" , "70" , "70" } ,
{ "Emilio A. Aguinaldo" , "78" , "86" , "78" , "80" } ,
{ "Ramon M. Magsaysay" , "91" , "81" , "78" , "80" } ,
{ "Gloria M.Arroyo" , "84" , "74" , "94" , "88" }
} ;
StudentDetails stud = new StudentDetails( ) ;
stud.init ( student) ;
System .
out .
println ( "Highest GWA : " + stud.
getHighestGWA ( ) ) ; System .
out .
println ( " Lowest GWA : " + stud.
getLowestGWA ( ) ) ; System .
out .
println ( "Highest Prelim : " + stud.
getHighestPrelim ( ) ) ; System .
out .
println ( "Highest Midterm : " + stud.
getHighestMidterm ( ) ) ; System .
out .
println ( "Highest PreFinal: " + stud.
getHighestPreFinal ( ) ) ; System .
out .
println ( "Highest Final : " + stud.
getHighestFinal ( ) ) ;
ArrayList< Student> temp = null ;
temp = stud.getPassList ( ) ;
System .
out .
println ( "Passed Students******" ) ; for ( Student tmp : temp)
System .
out .
println ( "\t " + tmp
) ;
temp = stud.getFailList ( ) ;
System .
out .
println ( "Failed Students******" ) ; for ( Student tmp : temp)
System .
out .
println ( "\t " + tmp
) ; }
}
aW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CgpjbGFzcyBTdHVkZW50IHsKCVN0cmluZyBuYW1lOwoJaW50W10gbWFyazsKCWRvdWJsZSBnd2E7CgoJcHVibGljIFN0dWRlbnQoKQoJewoJCW5hbWUgPSBudWxsOwoJCW1hcmsgPSBudWxsOwoJCWd3YSA9IDAuMDsKCX0KCglwdWJsaWMgU3R1ZGVudChTdHJpbmdbXSB4KSB7CgkJbmFtZSA9IHhbMF07CgkJbWFyayA9IG5ldyBpbnRbNF07CgkJbWFya1swXSA9IEludGVnZXIucGFyc2VJbnQoeFsxXSk7CgkJbWFya1sxXSA9IEludGVnZXIucGFyc2VJbnQoeFsyXSk7CgkJbWFya1syXSA9IEludGVnZXIucGFyc2VJbnQoeFszXSk7CgkJbWFya1szXSA9IEludGVnZXIucGFyc2VJbnQoeFs0XSk7CgkJZ3dhID0gKG1hcmtbMF0gKyBtYXJrWzFdICsgbWFya1syXSArIG1hcmtbM10gKyBtYXJrWzNdKSAvIDUuMDsKCX0KCglwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewoJCXJldHVybiBuYW1lICsgIihHV0E6ICIgKyBnd2EgKyAiKSI7Cgl9Cn0KCmNsYXNzIFN0dWRlbnREZXRhaWxzIHsKCVN0dWRlbnRbXSBzOwoKCXB1YmxpYyBTdHVkZW50RGV0YWlscygpIHsKCQlzID0gbnVsbDsKCX0KCglwdWJsaWMgdm9pZCBpbml0KFN0cmluZ1tdW10geCkgewoJCXMgPSBuZXcgU3R1ZGVudFt4Lmxlbmd0aF07CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgKytpKQoJCQlzW2ldID0gbmV3IFN0dWRlbnQoeFtpXSk7Cgl9CgoJcHVibGljIFN0dWRlbnQgZ2V0SGlnaGVzdEdXQSgpIHsKCQlpbnQgbWF4SW5kZXggPSAwOwoJCWZvciAoaW50IGkgPSAxOyBpIDwgcy5sZW5ndGg7ICsraSkKCQkJaWYgKHNbaV0uZ3dhID4gc1ttYXhJbmRleF0uZ3dhKQoJCQkJbWF4SW5kZXggPSBpOwoJCXJldHVybiBzW21heEluZGV4XTsKCX0KCglwdWJsaWMgU3R1ZGVudCBnZXRMb3dlc3RHV0EoKSB7CgkJaW50IG1pbkluZGV4ID0gMDsKCQlmb3IgKGludCBpID0gMTsgaSA8IHMubGVuZ3RoOyArK2kpCgkJCWlmIChzW2ldLmd3YSA8IHNbbWluSW5kZXhdLmd3YSkKCQkJCW1pbkluZGV4ID0gaTsKCQlyZXR1cm4gc1ttaW5JbmRleF07Cgl9CgoJcHVibGljIFN0dWRlbnQgZ2V0SGlnaGVzdFByZWxpbSgpIHsKCQlpbnQgbWF4SW5kZXggPSAwOwoJCWZvciAoaW50IGkgPSAxOyBpIDwgcy5sZW5ndGg7ICsraSkKCQkJaWYgKHNbaV0ubWFya1swXSA+IHNbbWF4SW5kZXhdLm1hcmtbMF0pCgkJCQltYXhJbmRleCA9IGk7CgkJcmV0dXJuIHNbbWF4SW5kZXhdOwoJfQoKCXB1YmxpYyBTdHVkZW50IGdldEhpZ2hlc3RNaWR0ZXJtKCkgewoJCWludCBtYXhJbmRleCA9IDA7CgkJZm9yIChpbnQgaSA9IDE7IGkgPCBzLmxlbmd0aDsgKytpKQoJCQlpZiAoc1tpXS5tYXJrWzFdID4gc1ttYXhJbmRleF0ubWFya1sxXSkKCQkJCW1heEluZGV4ID0gaTsKCQlyZXR1cm4gc1ttYXhJbmRleF07Cgl9CgoJcHVibGljIFN0dWRlbnQgZ2V0SGlnaGVzdFByZUZpbmFsKCkgewoJCWludCBtYXhJbmRleCA9IDA7CgkJZm9yIChpbnQgaSA9IDE7IGkgPCBzLmxlbmd0aDsgKytpKQoJCQlpZiAoc1tpXS5tYXJrWzJdID4gc1ttYXhJbmRleF0ubWFya1syXSkKCQkJCW1heEluZGV4ID0gaTsKCQlyZXR1cm4gc1ttYXhJbmRleF07Cgl9CgoJcHVibGljIFN0dWRlbnQgZ2V0SGlnaGVzdEZpbmFsKCkgewoJCWludCBtYXhJbmRleCA9IDA7CgkJZm9yIChpbnQgaSA9IDE7IGkgPCBzLmxlbmd0aDsgKytpKQoJCQlpZiAoc1tpXS5tYXJrWzNdID4gc1ttYXhJbmRleF0ubWFya1szXSkKCQkJCW1heEluZGV4ID0gaTsKCQlyZXR1cm4gc1ttYXhJbmRleF07Cgl9CgoJcHVibGljIEFycmF5TGlzdDxTdHVkZW50PiBnZXRQYXNzTGlzdCgpIHsKCQlBcnJheUxpc3Q8U3R1ZGVudD4gcGFzc0xpc3QgPSBuZXcgQXJyYXlMaXN0PFN0dWRlbnQ+KCk7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgKytpKQoJCQlpZiAoc1tpXS5nd2EgPj0gNzUuMCkKCQkJCXBhc3NMaXN0LmFkZChzW2ldKTsKCQlyZXR1cm4gcGFzc0xpc3Q7Cgl9CgoJcHVibGljIEFycmF5TGlzdDxTdHVkZW50PiBnZXRGYWlsTGlzdCgpIHsKCQlBcnJheUxpc3Q8U3R1ZGVudD4gcGFzc0xpc3QgPSBuZXcgQXJyYXlMaXN0PFN0dWRlbnQ+KCk7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgKytpKQoJCQlpZiAoc1tpXS5nd2EgPCA3NS4wKQoJCQkJcGFzc0xpc3QuYWRkKHNbaV0pOwoJCXJldHVybiBwYXNzTGlzdDsKCX0KfQoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCVN0cmluZ1tdW10gc3R1ZGVudCA9IHsKCQkJeyJGcmFuY2lzIE0uIFJleWVzIiwgICAgIjkyIiwgIjg5IiwgIjkzIiwgIjk0In0sCgkJCXsiSm9zZXBoIEUuIEVzdHJhZGEiLCAgICI4MCIsICI3MCIsICI4MSIsICI3OCJ9LAoJCQl7IkZlcmRpbmFuZCBFLiBNYXJjb3MiLCAiNzciLCAiOTMiLCAiODMiLCAiOTAifSwKCQkJeyJDb3J5IEMuIEFxdWlubyIsICAgICAgIjc4IiwgIjczIiwgIjcwIiwgIjcwIn0sCgkJCXsiRW1pbGlvIEEuIEFndWluYWxkbyIsICI3OCIsICI4NiIsICI3OCIsICI4MCJ9LAoJCQl7IlJhbW9uIE0uIE1hZ3NheXNheSIsICAiOTEiLCAiODEiLCAiNzgiLCAiODAifSwKCQkJeyJHbG9yaWEgTS5BcnJveW8iLCAgICAgIjg0IiwgIjc0IiwgIjk0IiwgIjg4In0KCQl9OwoKCQlTdHVkZW50RGV0YWlscyBzdHVkID0gbmV3IFN0dWRlbnREZXRhaWxzKCk7CgkJc3R1ZC5pbml0KHN0dWRlbnQpOwoKCQlTeXN0ZW0ub3V0LnByaW50bG4oIkhpZ2hlc3QgR1dBICAgICA6ICIgKyBzdHVkLmdldEhpZ2hlc3RHV0EoKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCIgTG93ZXN0IEdXQSAgICAgOiAiICsgc3R1ZC5nZXRMb3dlc3RHV0EoKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJIaWdoZXN0IFByZWxpbSAgOiAiICsgc3R1ZC5nZXRIaWdoZXN0UHJlbGltKCkpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiSGlnaGVzdCBNaWR0ZXJtIDogIiArIHN0dWQuZ2V0SGlnaGVzdE1pZHRlcm0oKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJIaWdoZXN0IFByZUZpbmFsOiAiICsgc3R1ZC5nZXRIaWdoZXN0UHJlRmluYWwoKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJIaWdoZXN0IEZpbmFsICAgOiAiICsgc3R1ZC5nZXRIaWdoZXN0RmluYWwoKSk7CgoJCUFycmF5TGlzdDxTdHVkZW50PiB0ZW1wID0gbnVsbDsKCgkJU3lzdGVtLm91dC5wcmludGxuKCk7CgkJdGVtcCA9IHN0dWQuZ2V0UGFzc0xpc3QoKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIlBhc3NlZCBTdHVkZW50cyoqKioqKiIpOwoJCWZvciAoU3R1ZGVudCB0bXAgOiB0ZW1wKQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlx0IiArIHRtcCk7CgoJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJCXRlbXAgPSBzdHVkLmdldEZhaWxMaXN0KCk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJGYWlsZWQgU3R1ZGVudHMqKioqKioiKTsKCQlmb3IgKFN0dWRlbnQgdG1wIDogdGVtcCkKCQkJU3lzdGVtLm91dC5wcmludGxuKCJcdCIgKyB0bXApOwoJfQp9