// Gage Alvarez CS1A Chapter 6 P. 370, 4
/**************************************************************
*
* Determine Safest Area
* ____________________________________________________________
* Description
* Program determines the safest region of a major city between north, south, east, west, and central.
* ____________________________________________________________
* INPUT
* city: the city that is being investigated
* accidents: the number of accidents in the given city
*
* OUTPUT
* direction: the direction with the lowest accident total
* lowest: the lowest number of accidents out of all directions
*
**************************************************************/
#include <iostream>
#include <vector>
using namespace std;
int getNumAccidents( string region) ;
void findLowest( int north, int south, int west, int east, int central) ;
int main( ) {
//Data Dictionary
int accidentsN;
int accidentsS;
int accidentsW;
int accidentsE;
int accidentsC;
//Input
accidentsN = getNumAccidents( "northern" ) ;
accidentsS = getNumAccidents( "southern" ) ;
accidentsW = getNumAccidents( "western" ) ;
accidentsE = getNumAccidents( "eastern" ) ;
accidentsC = getNumAccidents( "central" ) ;
//Processs
findLowest( accidentsN, accidentsS, accidentsW, accidentsE, accidentsC) ;
return 0 ;
}
int getNumAccidents( string region) {
int numAccidents;
cout << "Enter the number of accidents for the " << region << " region" << endl;
cin >> numAccidents;
while ( numAccidents < 0 ) {
cout << "Invalid input, number of accidents cannot be less than 0" ;
cin >> numAccidents;
}
return numAccidents;
}
void findLowest( int north, int south, int west, int east, int central) {
vector< int > allAccidents { north, south, west, east, central} ;
vector< string> directions { "north" , "south" , "west" , "east" , "central" } ;
int lowest = allAccidents[ 0 ] ;
string direction = directions[ 0 ] ;
for ( int i = 0 ; i < allAccidents.size ( ) ; i++ ) {
if ( allAccidents[ i] < lowest) {
lowest = allAccidents[ i] ;
direction = directions[ i] ;
}
}
cout << "the " << direction << " had the least accidents, with only "
<< lowest << " accidents." << endl;
}
Ly8gR2FnZSBBbHZhcmV6ICAgICAgICAgICAgICAgICAgICAgICBDUzFBICAgICAgICAgICAgICAgICAgIENoYXB0ZXIgNiBQLiAzNzAsIDQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBEZXRlcm1pbmUgU2FmZXN0IEFyZWEKICogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAqIERlc2NyaXB0aW9uCiAqCVByb2dyYW0gZGV0ZXJtaW5lcyB0aGUgc2FmZXN0IHJlZ2lvbiBvZiBhIG1ham9yIGNpdHkgYmV0d2VlbiBub3J0aCwgc291dGgsIGVhc3QsIHdlc3QsIGFuZCBjZW50cmFsLgogKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICogSU5QVVQKICoJCWNpdHk6IHRoZSBjaXR5IHRoYXQgaXMgYmVpbmcgaW52ZXN0aWdhdGVkCiAqCQlhY2NpZGVudHM6IHRoZSBudW1iZXIgb2YgYWNjaWRlbnRzIGluIHRoZSBnaXZlbiBjaXR5IAogKgogKiBPVVRQVVQKICoJCWRpcmVjdGlvbjogdGhlIGRpcmVjdGlvbiB3aXRoIHRoZSBsb3dlc3QgYWNjaWRlbnQgdG90YWwKICoJCWxvd2VzdDogdGhlIGxvd2VzdCBudW1iZXIgb2YgYWNjaWRlbnRzIG91dCBvZiBhbGwgZGlyZWN0aW9ucwogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBnZXROdW1BY2NpZGVudHMoc3RyaW5nIHJlZ2lvbik7IAp2b2lkIGZpbmRMb3dlc3QoaW50IG5vcnRoLCBpbnQgc291dGgsIGludCB3ZXN0LCBpbnQgZWFzdCwgaW50IGNlbnRyYWwpOwoKaW50IG1haW4oKSB7CgkvL0RhdGEgRGljdGlvbmFyeQoJaW50IGFjY2lkZW50c047CglpbnQgYWNjaWRlbnRzUzsKCWludCBhY2NpZGVudHNXOwoJaW50IGFjY2lkZW50c0U7CglpbnQgYWNjaWRlbnRzQzsKCS8vSW5wdXQKCWFjY2lkZW50c04gPSBnZXROdW1BY2NpZGVudHMoIm5vcnRoZXJuIik7CglhY2NpZGVudHNTID0gZ2V0TnVtQWNjaWRlbnRzKCJzb3V0aGVybiIpOwoJYWNjaWRlbnRzVyA9IGdldE51bUFjY2lkZW50cygid2VzdGVybiIpOwoJYWNjaWRlbnRzRSA9IGdldE51bUFjY2lkZW50cygiZWFzdGVybiIpOwoJYWNjaWRlbnRzQyA9IGdldE51bUFjY2lkZW50cygiY2VudHJhbCIpOwoJLy9Qcm9jZXNzcwoJZmluZExvd2VzdChhY2NpZGVudHNOLCBhY2NpZGVudHNTLCBhY2NpZGVudHNXLCBhY2NpZGVudHNFLCBhY2NpZGVudHNDKTsKCQoJcmV0dXJuIDA7Cn0KCmludCBnZXROdW1BY2NpZGVudHMoc3RyaW5nIHJlZ2lvbikgewoJaW50IG51bUFjY2lkZW50czsKCWNvdXQgPDwgIkVudGVyIHRoZSBudW1iZXIgb2YgYWNjaWRlbnRzIGZvciB0aGUgIiA8PCByZWdpb24gPDwgIiByZWdpb24iIDw8IGVuZGw7CgljaW4gPj4gbnVtQWNjaWRlbnRzOwoJd2hpbGUgKG51bUFjY2lkZW50cyA8IDApIHsKCQljb3V0IDw8ICJJbnZhbGlkIGlucHV0LCBudW1iZXIgb2YgYWNjaWRlbnRzIGNhbm5vdCBiZSBsZXNzIHRoYW4gMCI7CgkJY2luID4+IG51bUFjY2lkZW50czsKCX0KCXJldHVybiBudW1BY2NpZGVudHM7CgkKfQoKdm9pZCBmaW5kTG93ZXN0KGludCBub3J0aCwgaW50IHNvdXRoLCBpbnQgd2VzdCwgaW50IGVhc3QsIGludCBjZW50cmFsKSB7Cgl2ZWN0b3I8aW50PiBhbGxBY2NpZGVudHMge25vcnRoLCBzb3V0aCwgd2VzdCwgZWFzdCwgY2VudHJhbH07Cgl2ZWN0b3I8c3RyaW5nPiBkaXJlY3Rpb25zIHsibm9ydGgiLCAic291dGgiLCAid2VzdCIsICJlYXN0IiwgImNlbnRyYWwifTsKCWludCBsb3dlc3QgPSBhbGxBY2NpZGVudHNbMF07CglzdHJpbmcgZGlyZWN0aW9uID0gZGlyZWN0aW9uc1swXTsKCWZvciAoaW50IGkgPSAwOyBpIDwgYWxsQWNjaWRlbnRzLnNpemUoKTsgaSsrKSB7CgkJaWYgKGFsbEFjY2lkZW50c1tpXSA8IGxvd2VzdCkgewoJCQlsb3dlc3QgPSBhbGxBY2NpZGVudHNbaV07CgkJCWRpcmVjdGlvbiA9IGRpcmVjdGlvbnNbaV07CgkJfQoJfQoJY291dCA8PCJ0aGUgIiA8PCBkaXJlY3Rpb24gPDwgIiBoYWQgdGhlIGxlYXN0IGFjY2lkZW50cywgd2l0aCBvbmx5ICIgCgkJIDw8IGxvd2VzdCA8PCAiIGFjY2lkZW50cy4iIDw8IGVuZGw7Cn0=