/* 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
{
File cityPopulation
= new File ( "cityPopulationData.txt" ) ; Scanner fileReader = new Scanner( cityPopulation) ;
fileReader.useDelimiter ( "[\t |\n ]+" ) ;
int [ ] pop2010 = new int [ 400 ] ;
int [ ] pop2013 = new int [ 400 ] ;
double [ ] area = new double [ 400 ] ;
int count = getData( fileReader, cities, pop2010, pop2013, area) ;
displayArrays( cities, pop2010, pop2013, area, count) ;
largestCity( pop2010, count) ;
}
public static int getData
( Scanner inf,
String [ ] c,
int [ ] pop10,
int [ ] pop13,
double [ ] a
) { int count = 0 ;
inf.next ( ) ;
inf.next ( ) ;
inf.next ( ) ;
inf.next ( ) ;
while ( inf.hasNext ( ) ) {
c[ count] = inf.next ( ) ;
pop10[ count] = inf.nextInt ( ) ;
pop13[ count] = inf.nextInt ( ) ;
a[ count] = inf.nextDouble ( ) ;
count++;
}
return count;
}
public static void displayArrays
( String [ ] c,
int [ ] pop10,
int [ ] pop13,
double [ ] a,
int count
) { for ( int i = 0 ; i < count; i++ ) {
System .
out .
printf ( "%s \t %d \t %d \t %f" , c
[ i
] , pop10
[ i
] , pop13
[ i
] , a
[ i
] ) ; }
}
public static int largestCity( int [ ] pop10, int count) {
int lCindex = 0 ;
for ( int i = 1 ; i < count; i++ ) {
if ( pop10[ i] > pop10[ lCindex] )
lCindex = i;
}
return lCindex;
}
// public static int findGrowth(int[] pop10, int[] pop13, int count, ) {
//
// }
public static int highestDensity( int [ ] pop10, double [ ] area, int count) {
int hDindex = 0 ;
for ( int i = 1 ; i < count; i++ ) {
if ( ( pop10[ i] / area[ i] ) > ( pop10[ hDindex] / area[ hDindex] ) )
hDindex = i;
}
return hDindex;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24gewogICAgICAgIEZpbGUgY2l0eVBvcHVsYXRpb24gPSBuZXcgRmlsZSgiY2l0eVBvcHVsYXRpb25EYXRhLnR4dCIpOwogICAgICAgIFNjYW5uZXIgZmlsZVJlYWRlciA9IG5ldyBTY2FubmVyKGNpdHlQb3B1bGF0aW9uKTsKICAgICAgICBmaWxlUmVhZGVyLnVzZURlbGltaXRlcigiW1x0fFxuXSsiKTsKICAgICAgICBTdHJpbmdbXSBjaXRpZXMgPSBuZXcgU3RyaW5nWzQwMF07CiAgICAgICAgaW50W10gcG9wMjAxMCA9IG5ldyBpbnRbNDAwXTsKICAgICAgICBpbnRbXSBwb3AyMDEzID0gbmV3IGludFs0MDBdOwogICAgICAgIGRvdWJsZVtdIGFyZWEgPSBuZXcgZG91YmxlWzQwMF07CiAgICAgICAgaW50IGNvdW50ID0gZ2V0RGF0YShmaWxlUmVhZGVyLCBjaXRpZXMsIHBvcDIwMTAsIHBvcDIwMTMsIGFyZWEpOwogICAgICAgIGRpc3BsYXlBcnJheXMoY2l0aWVzLCBwb3AyMDEwLCBwb3AyMDEzLCBhcmVhLCBjb3VudCk7CiAgICAgICAgbGFyZ2VzdENpdHkocG9wMjAxMCwgY291bnQpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldERhdGEoU2Nhbm5lciBpbmYsIFN0cmluZ1tdIGMsIGludFtdIHBvcDEwLCBpbnRbXSBwb3AxMywgZG91YmxlW10gYSkgewogICAgICAgIGludCBjb3VudCA9IDA7CiAgICAgICAgaW5mLm5leHQoKTsKICAgICAgICBpbmYubmV4dCgpOwogICAgICAgIGluZi5uZXh0KCk7CiAgICAgICAgaW5mLm5leHQoKTsKICAgICAgICB3aGlsZShpbmYuaGFzTmV4dCgpKSB7CiAgICAgICAgICAgIGNbY291bnRdID0gaW5mLm5leHQoKTsKICAgICAgICAgICAgcG9wMTBbY291bnRdID0gaW5mLm5leHRJbnQoKTsKICAgICAgICAgICAgcG9wMTNbY291bnRdID0gaW5mLm5leHRJbnQoKTsKICAgICAgICAgICAgYVtjb3VudF0gPSBpbmYubmV4dERvdWJsZSgpOwogICAgICAgICAgICBjb3VudCsrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gY291bnQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIGRpc3BsYXlBcnJheXMoU3RyaW5nW10gYywgaW50W10gcG9wMTAsIGludFtdIHBvcDEzLCBkb3VibGVbXSBhLCBpbnQgY291bnQpIHsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKyl7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCIlcyBcdCAlZCBcdCAlZCBcdCAlZiIsIGNbaV0sIHBvcDEwW2ldLCBwb3AxM1tpXSwgYVtpXSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGxhcmdlc3RDaXR5KGludFtdIHBvcDEwLCBpbnQgY291bnQpIHsKICAgICAgICBpbnQgbENpbmRleCA9IDA7CiAgICAgICAgZm9yKGludCBpID0gMTsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgICAgaWYocG9wMTBbaV0gPiBwb3AxMFtsQ2luZGV4XSkKICAgICAgICAgICAgICAgIGxDaW5kZXggPSBpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbENpbmRleDsKICAgIH0KCiAgICAvLyBwdWJsaWMgc3RhdGljIGludCBmaW5kR3Jvd3RoKGludFtdIHBvcDEwLCBpbnRbXSBwb3AxMywgaW50IGNvdW50LCAgKSB7CiAgICAvLyAKICAgIC8vIH0KCiAgICBwdWJsaWMgc3RhdGljIGludCBoaWdoZXN0RGVuc2l0eShpbnRbXSBwb3AxMCwgZG91YmxlW10gYXJlYSwgaW50IGNvdW50KSB7CiAgICAgICAgaW50IGhEaW5kZXggPSAwOwogICAgICAgIGZvciggaW50IGkgPSAxOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICAgICBpZiAoKHBvcDEwW2ldL2FyZWFbaV0pID4gKHBvcDEwW2hEaW5kZXhdL2FyZWFbaERpbmRleF0pKQogICAgICAgICAgICAgICAgaERpbmRleCA9IGk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBoRGluZGV4OwogICAgfQoKfQ==