void process(int, int); int main(int argc, char **argv){ - if arguments are not correct, give an error message and quit bool **occupy, **handled; int width, height; vector<int> tempvx, tempvy; char *fileIn, *fileOut; ifstream fin; ofstream fout; vector<vector<int> > groupX, groupY; - receive locations of people in the given file and assign proper values to all squares on the grid - go through each square on the grid, find the groups, and store them into a vector - output results to the output file, specified by the command line } /* precondition: x and y can never go out of the grid’s bounds postcondition: tempvx and tempvy will contain people belonging to a group */ void process(int x, int y) { - same }Alternatively, I could’ve used a vector of a structure that holds 2 int instead of declared 2 vector, one for x coordinates and the other for y coordinates. Both are fine. Note that we may want some of the variables to have global scope so that we won’t need to pass arguments from function calls to functions. This analysis will be done in the next step.