Telephone Directory Alphabetization

Based on its success in contracting previous software development efforts to programming contest teams, the String & Tin Can (S&TC) Telephone Company has now decided to produce its telephone directories internally. Your team has been hired to develop a program that will take subscriber names and telephone numbers and alphabetize them into a list for printing. Telephone directories have traditionally used special conventions for alphabetization, and S&TC wants your program to use these conventions. Each subscriber listing consists of one or more “words,” where each word is separated from the others by spaces or non-alphanumeric characters. Directories only use the letters A through Z for sorting, ignoring case. Therefore, names that include words comprised of digits or capital letters require special processing. A listing may contain a word that is a decimal number. Listings with numbers in them appear in the alphabetized list in the same location they would if the numbers were spelled out in English. For example, “50 Star Company” might appear just before “Fifty Star Vending” in the list. Numbers are permitted to be in the range 0-999,999,999. Letters and digits will not appear together in the same word. All special (non-alphanumeric) characters are to be treated as spaces. “Penny-Wise Corporation” would appear after “Penny Saver,” but before “Pennypinching Company.” Multiple spaces or non- alphanumeric characters are treated as a single space when sorting. Special characters will not appear at the beginning of a listing. Words that are comprised of all capital letters are assumed to be initials or acronyms, and are treated as if spaces appeared between each letter. Hence, “KAT Shop” would appear at the beginning of the K listings, before “K-B Enterprises” and “K Warehouse”. Input Input to your program will be a list of subscribers, one per line. The first seven digits will be the telephone number, and the rest of the line will be the name of the subscriber as it is to appear in the telephone directory. Output Your program is to alphabetically sort the subscriber names according to the rules above and print the listing in order. Each line should contain the subscriber name as it appeared in the input in the first 52 positions, left justified and space filled, followed by the seven digit telephone number (including a space between the third and fourth digits) in columns 56 through 63. The telephone number is to be immediately followed by the end of line. Your program need not handle more than 1,000 subscribers-none of the towns S&TC serves in Swamp County have populations larger than that. Sample Input 8936251KAT Shop 7362812Penny Saver, Inc. 7251887Kate's Company 8372974Fine Foods 9273664Five Star Vending 3523984K-B Enterprises

2/2 723621899 Cents Only Store Sample Output Fine Foods Five Star Vending KAT Shop K-B Enterprises Kate's Company 99 Cents Only Store Penny Saver, Inc. 837 2974 927 3664 893 6251 352 3984 725 1887 723 6218 736 2812