```1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 ``` ```/* SI 335 Spring 2013  * Project 1: OMA Service Selection  *  * This contains the "simple" algorithm to do the service  * selection, provided as example/starter code.  */   #include #include #include   using namespace std;   int main() {   int k, n;     // Read in the number of communities   cin >> k;   cin.ignore(1024,'\n');     // Read in the community names   string* communities = new string[k];   for (int i=0; i> n;     // Read in the proles' names and rankings   // Rankings will be stored in an array of arrays.   // Each array in the array will contain all k rankings for that prole.   string* proleNames = new string[n];   int** proleRanks = new int*[n];   for (int i=0; i> proleNames[i];       // Read in the rankings     proleRanks[i] = new int[k];     for (int j=0; j> proleRanks[i][j];     }   }     // This list will hold the names that are already picked   string* picked = new string[n];     // Now do the actual selection   for (int i = 0; i < n; ++i) {     int comm = i % k; // Which community gets this pick     int rank = 0; // start with the top-ranked pick     bool found = false;     string nextPick;       while(! found) {       rank = rank + 1;         for (int j = 0; j < n; ++j) {         if (proleRanks[j][comm] == rank) {           nextPick = proleNames[j];         }       }         // Now nextPick is the name of the prole with rank "rank"       // by community "comm". But are they already picked?         found = true;       for (int j = 0; j < i; ++j) {         if (picked[j] == nextPick) found = false;       }     }       // Now we have the actual pick!     // Print it and then add to the "picked" list.     cout << nextPick << ' ' << communities[comm] << endl;     picked[i] = nextPick;   }     // De-allocate the dynamic memory we got   delete [] picked;   for (int i=0; i