Points taken off only once for each criteria. Correctness 46 C1 Does not compile without significant modifications. -10 C2 Part 1 output for "cornell.txt" and "ithaca.txt" is incorrect -4 C3 Reads the input file more than once for part 1 -4 C4 Does not meet the asymptotic time/space requirement for part 1 -4 C5 Part 2 output for "cornell.txt" and "ithaca.txt" is incorrect -4 C6 Reads the input file more than twice for part 2 -4 C7 Does not meet the asymptotic time/space requirement for part 2 -4 C8 Part 3 output for "cornell.txt" and "ithaca.txt" is incorrect -4 C9 Does not meet the asymptotic time/space requirement for part 3 -4 C10 Program can not handle the case: number of distinct addresses < m -4 Style 54 Use of Hashtable 8 S1.1 Puts the key as part of the value as well (i.e. address included in value) (the only way to access the values of a Hashtable is if you have the key. But if you already have the key it doesn't need to be part of the value you are looking up.) -5 S1.2 Gets and puts into hashtable when adding element to the name vector -3 (if the hashtable contains pointers to vectors, modifying the contents of the vector does not change the pointer. Hashtable.put() is unnecessary) Use of Heap 14 S2.1 Did not use heap (deleteMin) to sort before printing. -5 S2.2 Did not use Heapable appropriately; array of Heapables, etc. -3 S2.3 Bad array sizing (not m+1 or increasing by multiplicative factor). -3 S2.4 Array not a private member. -3 Part 1 3 S3.1 Wasted space by using a separate count instead of Vector.size() -3 Part 2 5 S4.1 Used inappropriate data structure (such as Vector) to store the count info. -5 Part 3 10 S5.1 Stored information from the larger file ("cornell.txt") in a data structure. -5 S5.2 Used inefficient method for avoiding repeated addresses. -5 Other 14 S6.1 Bad control structure -3 S6.2 Inefficient inner loop -3 (for example, when putting the hashtable into the heap, first m elements are inserted, then the rest are inserted if necessary with replaceMin. If you combine these two sets of operations so that each time through the loop you check if #elements < m, then for the majority of the elements you are doing an unnecessary if statement) S6.3 Lack of comments, illegible code, indentation etc. -3 S6.4 Classes not divided into files properly -3 S6.5 Unnecessary variables, statements, etc. -2 Extra credit 5