├── .github └── DISCUSSION_TEMPLATE │ └── q-a.yml ├── .gitignore ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── README.md ├── code ├── .clang-format ├── Makefile ├── array.c ├── buggy0 ├── buggy0.c ├── buggy0.o ├── labs │ └── population │ │ └── population.c ├── overflow.c ├── practices │ ├── debug │ │ └── debug.c │ ├── half │ │ ├── half │ │ └── half.c │ └── prime │ │ └── prime.c ├── probs │ ├── prob1 │ │ ├── cash │ │ │ ├── cash-v2.c │ │ │ └── cash.c │ │ ├── credit │ │ │ └── credit.c │ │ ├── hello.c │ │ └── mario-less │ │ │ ├── mario │ │ │ └── mario.c │ ├── prob2 │ │ ├── bulbs │ │ │ └── bulbs.c │ │ ├── caesar │ │ │ └── caesar.c │ │ ├── readability │ │ │ └── readability.c │ │ ├── substitution │ │ │ └── substitution.c │ │ └── wordle │ │ │ ├── 5.txt │ │ │ ├── 6.txt │ │ │ ├── 7.txt │ │ │ ├── 8.txt │ │ │ └── wordle.c │ └── prob3 │ │ ├── plurality │ │ └── plurality.c │ │ ├── runoff │ │ └── runoff.c │ │ ├── sort │ │ ├── answers.txt │ │ ├── random10000.txt │ │ ├── random5000.txt │ │ ├── random50000.txt │ │ ├── reversed10000.txt │ │ ├── reversed5000.txt │ │ ├── reversed50000.txt │ │ ├── sort1 │ │ ├── sort2 │ │ ├── sort3 │ │ ├── sorted10000.txt │ │ ├── sorted5000.txt │ │ └── sorted50000.txt │ │ └── tideman │ │ └── tideman.c ├── search.c ├── sort ├── sort.c └── struct.c └── notes ├── introduction.md ├── static ├── 2024-01-11-21-01-22.png └── 2024-01-11-21-02-00.png ├── week0.md ├── week1.md ├── week2.md └── week3.md /.github/DISCUSSION_TEMPLATE/q-a.yml: -------------------------------------------------------------------------------- 1 | body: 2 | - type: dropdown 3 | id: environment 4 | attributes: 5 | label: 你的运行环境是? 6 | options: 7 | - cs50.dev 8 | - Windows 9 | - Linux 10 | - WSL 11 | - MacOS 12 | validations: 13 | required: true 14 | - type: textarea 15 | attributes: 16 | label: 请详细描述你的问题,操作步骤。并附上完整的报错信息截图,或其他有效信息。 17 | validations: 18 | required: true 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.dSYM 3 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "Debug", 9 | "type": "cppdbg", 10 | "request": "launch", 11 | "program": "${fileDirname}/${fileBasenameNoExtension}", 12 | "args": [], 13 | "stopAtEntry": false, 14 | "cwd": "${fileDirname}", 15 | "environment": [], 16 | "externalConsole": true, 17 | "MIMode": "lldb", 18 | "preLaunchTask": "build cs50" 19 | }, 20 | { 21 | "name": "Debug lldb", 22 | "type": "lldb", 23 | "request": "launch", 24 | "program": "${fileDirname}/${fileBasenameNoExtension}", 25 | "args": [], 26 | "cwd": "${fileDirname}", 27 | "preLaunchTask": "build cs50" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "stdio.h": "c" 4 | } 5 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "tasks": [ 3 | { 4 | "type": "cppbuild", 5 | "label": "build", 6 | "command": "/usr/bin/clang", 7 | "args": [ 8 | "-fcolor-diagnostics", 9 | "-fansi-escape-codes", 10 | "-g", 11 | "${file}", 12 | "-o", 13 | "${fileDirname}/${fileBasenameNoExtension}" 14 | ], 15 | "options": { 16 | "cwd": "${fileDirname}" 17 | }, 18 | "problemMatcher": [ 19 | "$gcc" 20 | ], 21 | "group": { 22 | "kind": "build", 23 | "isDefault": true 24 | }, 25 | "detail": "Task generated by Debugger." 26 | }, 27 | { 28 | "type": "cppbuild", 29 | "label": "build prod", 30 | "command": "/usr/bin/clang", 31 | "args": [ 32 | "${file}", 33 | "-o", 34 | "${fileDirname}/${fileBasenameNoExtension}" 35 | ], 36 | "options": { 37 | "cwd": "${fileDirname}" 38 | }, 39 | "problemMatcher": [ 40 | "$gcc" 41 | ], 42 | "group": { 43 | "kind": "build", 44 | "isDefault": true 45 | }, 46 | "detail": "Task generated by Debugger." 47 | }, 48 | { 49 | "type": "cppbuild", 50 | "label": "build cs50", 51 | "command": "/usr/bin/clang", 52 | "args": [ 53 | "${file}", 54 | "-g", 55 | "-o", 56 | "${fileDirname}/${fileBasenameNoExtension}", 57 | "-lcs50" 58 | ], 59 | "options": { 60 | "cwd": "${fileDirname}" 61 | }, 62 | "problemMatcher": [ 63 | "$gcc" 64 | ], 65 | "group": { 66 | "kind": "build", 67 | "isDefault": true 68 | }, 69 | "detail": "Task generated by Debugger." 70 | } 71 | ], 72 | "version": "2.0.0" 73 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CS50x 2 | 3 | CS50x 2023 study group 4 | 5 | ## 分享内容/Sharing 6 | 7 | [更新计划](https://github.com/users/Xilesun/projects/2) 8 | 9 | | Topic | My notes | My videos | Problem sets | 10 | | ------------------------------------------------------------ | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | 11 | | [Introduction](https://cs50.harvard.edu/x/2023/) | [Introduction](./notes/introduction.md) | [CS50课程介绍 & 本视频系列提供什么](https://www.bilibili.com/video/BV18k4y1K7fQ/) | | 12 | | [Week0 Scratch](https://cs50.harvard.edu/x/2023/weeks/0/) | [Week0 Scratch](./notes/week0.md) | [二进制与编码 & 编程基本概念 & Scratch](https://www.bilibili.com/video/BV1x94y1B7qa/) | | 13 | | [Week1 C](https://cs50.harvard.edu/x/2023/weeks/1/) | [Week1 C](./notes/week1.md) | [1. 命令行 & VSCode的基本用法](https://www.bilibili.com/video/BV1fk4y1G7BX/)
[2. Hello world!](https://www.bilibili.com/video/BV1qp4y157FX/)
[3. 头文件 & 变量 & 类型 & printf](https://www.bilibili.com/video/BV1Lj41197eZ/)
[4. 条件控制 & 循环语句](https://www.bilibili.com/video/BV12V4y1v7EQ/)
[5. 整形溢出 & 小数精度](https://www.bilibili.com/video/BV1Cu4y117zx/)
[6. Problem sets - mario](https://www.bilibili.com/video/BV1Cr4y1R7wd/)
[7. Problem sets - cash & credit](https://www.bilibili.com/video/BV1iN411q7Pk/) | [Problem 1](./code/probs/prob1) | 14 | | [Week2 Array](https://cs50.harvard.edu/x/2023/weeks/2/) | [Week2 Array](./notes/week2.md) | [1. Compiling](https://www.bilibili.com/video/BV1Nu411c7WB/)
[2. Debugger](https://www.bilibili.com/video/BV1BF411m7Wc/)
[3. Array & String](https://www.bilibili.com/video/BV1PB4y1o7Ey/)
[4. Problem sets - Readability & Bulbs](https://www.bilibili.com/video/BV1uM41197Zz/)
[5. Problem sets - Caesar](https://www.bilibili.com/video/BV1uM41197Zz/)
[6. Problem sets - Substitution](https://www.bilibili.com/video/BV1xG411D7uV/)
[7. Problem sets - Wordle50](https://www.bilibili.com/video/BV1xc411q7Kg/) | [Problem 2](./code/probs/prob2) | 15 | | [Week3 Algorithms](https://cs50.harvard.edu/x/2023/weeks/3/) | [Week3 Algorithms](./notes/week3.md) | [1. struct, 大O表示法, 线性查找, 二分搜索](https://www.bilibili.com/video/BV1oK411t7xw/)
[2. 选择排序、冒泡排序、递归和归并排序](https://www.bilibili.com/video/BV16c411t7em/)
[3. Problem sets - Sort & Plurality & Runoff](https://www.bilibili.com/video/BV1hp421o7ZA/)
[4. Problem sets - Tideman](https://www.bilibili.com/video/BV1FZ42127W8/) | [Problem 3](./code/probs/prob3/) | 16 | 17 | ## 讨论区 & 提问/Discussion & Questions 18 | 19 | - [Discussion](https://github.com/Xilesun/CS50x/discussions) 20 | - [Q & A](https://github.com/Xilesun/CS50x/discussions/categories/q-a) 21 | - B 站私信加微信交流群。 22 | 23 | ## 版权说明/License 24 | 25 | 本项目采用[知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议](https://creativecommons.org/licenses/by-nc-sa/4.0/)进行许可。 26 | This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/) (CC BY-NC-SA 4.0). 27 | ![CC BY-NC-SA 4.0](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png) 28 | -------------------------------------------------------------------------------- /code/.clang-format: -------------------------------------------------------------------------------- 1 | BreakBeforeBraces: Custom 2 | BraceWrapping: 3 | AfterControlStatement: Always 4 | AfterFunction: true 5 | IndentWidth: 4 6 | -------------------------------------------------------------------------------- /code/Makefile: -------------------------------------------------------------------------------- 1 | %: 2 | clang $@.c -g -o $@ -lcs50 3 | 4 | 5 | -------------------------------------------------------------------------------- /code/array.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int main(int argc, string argv[]) 6 | { 7 | // // Initialize array 8 | // int a[5] = {1, 2, 3, 4, 5}; 9 | // int b[] = {1, 2}; 10 | // // Assign 11 | // int c[5]; 12 | // for (int i = 0; i < 5; i++) 13 | // { 14 | // c[i] = a[i]; 15 | // } 16 | // // Two-dimension array 17 | // // int d[2][2] = {{1, 2}, {3, 4}}; 18 | // // for (int i = 0; i < 2; i++) 19 | // // { 20 | // // for (int j = 0; j < 2; j++) 21 | // // { 22 | // // printf("(%d, %d) = %d\n", i, j, d[i][j]); 23 | // // } 24 | // // } 25 | // char str[] = "abc"; 26 | // str[0] = 'b'; 27 | // printf("%s\n", str); 28 | 29 | for (int i = 0; i < argc; i++) 30 | { 31 | printf("%s\n", argv[i]); 32 | } 33 | 34 | return 1; 35 | } 36 | 37 | // // Passed by Reference VS Passed by value 38 | // void set_array(int array[4]); 39 | // void set_int(int x); 40 | // int main(void) 41 | // { 42 | // int a = 10; 43 | // int b[4] = {0, 1, 2, 3}; 44 | // set_int(a); 45 | // set_array(b); 46 | // printf("%d %d\n", a, b[0]); 47 | // } 48 | // void set_array(int array[4]) { array[0] = 22; } 49 | // void set_int(int x) { x = 22; } 50 | -------------------------------------------------------------------------------- /code/buggy0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/code/buggy0 -------------------------------------------------------------------------------- /code/buggy0.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) 4 | { 5 | for (int i = 0; i <= 3; i++) 6 | { 7 | printf("# \n"); 8 | } 9 | } -------------------------------------------------------------------------------- /code/buggy0.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/code/buggy0.o -------------------------------------------------------------------------------- /code/labs/population/population.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void) { 5 | // TODO: Prompt for start size 6 | 7 | // TODO: Prompt for end size 8 | 9 | // TODO: Calculate number of years until we reach threshold 10 | 11 | // TODO: Print number of years 12 | } 13 | -------------------------------------------------------------------------------- /code/overflow.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void) 5 | { 6 | int i = INT_MAX; 7 | printf("%d\n", i); 8 | printf("%d\n", i + 1); 9 | 10 | int j = UINT_MAX; 11 | printf("%u\n", j); 12 | printf("%u\n", j + 1); 13 | } -------------------------------------------------------------------------------- /code/practices/debug/debug.c: -------------------------------------------------------------------------------- 1 | // Become familiar wih C syntax 2 | // Learn to debug buggy code 3 | 4 | #include 5 | #include 6 | 7 | int main(void) { 8 | // Ask for your name and where live 9 | string name = get_string("What is your name? "); 10 | string location = get_string("Where do you live? "); 11 | 12 | // Say hello 13 | printf("Hello, %s, from %s!\n", name, location); 14 | } 15 | -------------------------------------------------------------------------------- /code/practices/half/half: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/code/practices/half/half -------------------------------------------------------------------------------- /code/practices/half/half.c: -------------------------------------------------------------------------------- 1 | // Calculate your half of a restaurant bill 2 | // Data types, operations, type casting, return value 3 | 4 | #include 5 | #include 6 | 7 | float half(float bill, float tax, int tip); 8 | 9 | int main(void) 10 | { 11 | float bill_amount = get_float("Bill before tax and tip: "); 12 | float tax_percent = get_float("Sale Tax Percent: "); 13 | int tip_percent = get_int("Tip percent: "); 14 | 15 | printf("You will owe $%.2f each!\n", half(bill_amount, tax_percent, tip_percent)); 16 | } 17 | 18 | // TODO: Complete the function 19 | float half(float bill, float tax, int tip) 20 | { 21 | float bill_after_tax = bill * ((float)1 + tax / (float)100); 22 | float bill_added_tip = bill_after_tax * ((float)1 + tip / (float)100); 23 | return bill_added_tip / (float)2; 24 | } 25 | -------------------------------------------------------------------------------- /code/practices/prime/prime.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | bool prime(int number); 5 | 6 | int main(void) 7 | { 8 | int min; 9 | do 10 | { 11 | min = get_int("Minimum: "); 12 | } 13 | while (min < 1); 14 | 15 | int max; 16 | do 17 | { 18 | max = get_int("Maximum: "); 19 | } 20 | while (min >= max); 21 | 22 | for (int i = min; i <= max; i++) 23 | { 24 | if (prime(i)) 25 | { 26 | printf("%i\n", i); 27 | } 28 | } 29 | } 30 | 31 | bool prime(int number) 32 | { 33 | // TODO 34 | return false; 35 | } 36 | -------------------------------------------------------------------------------- /code/probs/prob1/cash/cash-v2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int get_cents(void); 5 | 6 | int main(void) 7 | { 8 | // Ask how many cents the customer is owed 9 | int cents = get_cents(); 10 | 11 | int values[] = {25, 10, 5, 1}; 12 | int coins = 0; 13 | for (int i = 0; i < 4; i++) 14 | { 15 | coins += cents / values[i]; 16 | cents %= values[i]; // cents = cents % values[i]; 17 | } 18 | // Print total number of coins to give the customer 19 | printf("%i\n", coins); 20 | } 21 | 22 | int get_cents(void) 23 | { 24 | int owed; 25 | do 26 | { 27 | owed = get_int("Change owed: "); 28 | } while (owed < 0); 29 | return owed; 30 | } 31 | -------------------------------------------------------------------------------- /code/probs/prob1/cash/cash.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int get_cents(void); 5 | int calculate_quarters(int cents); 6 | int calculate_dimes(int cents); 7 | int calculate_nickels(int cents); 8 | int calculate_pennies(int cents); 9 | 10 | int main(void) 11 | { 12 | // Ask how many cents the customer is owed 13 | int cents = get_cents(); 14 | 15 | // Calculate the number of quarters to give the customer 16 | int quarters = calculate_quarters(cents); 17 | cents = cents - quarters * 25; 18 | 19 | // Calculate the number of dimes to give the customer 20 | int dimes = calculate_dimes(cents); 21 | cents = cents - dimes * 10; 22 | 23 | // Calculate the number of nickels to give the customer 24 | int nickels = calculate_nickels(cents); 25 | cents = cents - nickels * 5; 26 | 27 | // Calculate the number of pennies to give the customer 28 | int pennies = calculate_pennies(cents); 29 | cents = cents - pennies * 1; 30 | 31 | // Sum coins 32 | int coins = quarters + dimes + nickels + pennies; 33 | 34 | // Print total number of coins to give the customer 35 | printf("%i\n", coins); 36 | } 37 | 38 | int get_cents(void) 39 | { 40 | int owed; 41 | do 42 | { 43 | owed = get_int("Change owed: "); 44 | } while (owed < 0); 45 | return owed; 46 | } 47 | 48 | int calculate_quarters(int cents) { return cents / 25; } 49 | 50 | int calculate_dimes(int cents) { return cents / 10; } 51 | 52 | int calculate_nickels(int cents) { return cents / 5; } 53 | 54 | int calculate_pennies(int cents) { return cents / 1; } 55 | -------------------------------------------------------------------------------- /code/probs/prob1/credit/credit.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void) 5 | { 6 | // 获取信用卡号码 7 | long cc_number = get_long("Number: "); 8 | int size = 0; 9 | int first_digit; 10 | int second_digit; 11 | int checksum = 0; 12 | long remain_digits = cc_number; 13 | // 计算算法的结果 14 | while (remain_digits > 0) 15 | { 16 | int digit = remain_digits % 10; 17 | remain_digits = remain_digits / 10; 18 | if (size > 0) 19 | { 20 | second_digit = first_digit; 21 | } 22 | first_digit = digit; 23 | if (size % 2 == 0) 24 | { 25 | checksum += digit; 26 | } else 27 | { 28 | checksum += digit * 2 % 10 + digit * 2 / 10; 29 | } 30 | size++; 31 | } 32 | // 检查结果 33 | if (checksum % 10 != 0) 34 | { 35 | printf("INVALID\n"); 36 | return 0; 37 | } 38 | // AMEX 39 | if (size == 15 && first_digit == 3 && 40 | (second_digit == 4 || second_digit == 7)) 41 | { 42 | printf("AMEX\n"); 43 | return 0; 44 | } 45 | // MasterCard 46 | if (size == 16 && first_digit == 5 && 47 | (second_digit >= 1 && second_digit <= 5)) 48 | { 49 | printf("MASTERCARD\n"); 50 | return 0; 51 | } 52 | // Visa 53 | if ((size == 13 || size == 16) && first_digit == 4) 54 | { 55 | printf("VISA\n"); 56 | return 0; 57 | } 58 | printf("INVALID\n"); 59 | } 60 | -------------------------------------------------------------------------------- /code/probs/prob1/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void) 5 | { 6 | string name = get_string("What's your name?\n"); 7 | printf("hello %s\n", name); 8 | } 9 | -------------------------------------------------------------------------------- /code/probs/prob1/mario-less/mario: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/code/probs/prob1/mario-less/mario -------------------------------------------------------------------------------- /code/probs/prob1/mario-less/mario.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void) 5 | { 6 | int height; 7 | do 8 | { 9 | height = get_int("Height: "); 10 | } while (height < 1 || height > 8); 11 | 12 | int row = 0; 13 | while (row < height) 14 | { 15 | for (int i = 0; i < height - row - 1; i++) 16 | { 17 | printf(" "); 18 | } 19 | for (int j = 0; j < row + 1; j++) 20 | { 21 | printf("#"); 22 | } 23 | printf("\n"); 24 | row++; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /code/probs/prob2/bulbs/bulbs.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | const int BITS_IN_BYTE = 8; 6 | 7 | void print_bulb(int bit); 8 | 9 | int main(void) 10 | { 11 | string message = get_string("Message: "); 12 | int length = strlen(message); 13 | int bulbs[length][BITS_IN_BYTE]; 14 | 15 | for (int i = 0; i < length; i++) 16 | { 17 | int c = (int)message[i]; 18 | for (int j = 0; j < BITS_IN_BYTE; j++) 19 | { 20 | bulbs[i][j] = c % 2; 21 | c /= 2; 22 | } 23 | } 24 | 25 | for (int i = 0; i < strlen(message); i++) 26 | { 27 | for (int j = BITS_IN_BYTE - 1; j >= 0; j--) 28 | { 29 | print_bulb(bulbs[i][j]); 30 | } 31 | printf("\n"); 32 | } 33 | } 34 | 35 | void print_bulb(int bit) 36 | { 37 | if (bit == 0) 38 | { 39 | // Dark emoji 40 | printf("\U000026AB"); 41 | } else if (bit == 1) 42 | { 43 | // Light emoji 44 | printf("\U0001F7E1"); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /code/probs/prob2/caesar/caesar.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | bool only_digits(string s); 7 | char rotate(char c, int n); 8 | 9 | int main(int argc, string argv[]) 10 | { 11 | // Make sure program was run with just one command-line argument 12 | if (argc != 2) 13 | { 14 | printf("Usage: ./caesar key\n"); 15 | return 1; 16 | } 17 | // Make sure every character in argv[1] is a digit 18 | string key = argv[1]; 19 | if (!only_digits(key)) 20 | { 21 | printf("Usage: ./caesar key\n"); 22 | return 1; 23 | } 24 | // Convert argv[1] from a `string` to an `int` 25 | int k = atoi(key); 26 | // Prompt user for plaintext 27 | string plaintext = get_string("plaintext: "); 28 | // For each character in the plaintext: 29 | for (int i = 0; i < strlen(plaintext); i++) 30 | { 31 | // Rotate the character if it's a letter 32 | plaintext[i] = rotate(plaintext[i], k); 33 | } 34 | printf("ciphertext: %s\n", plaintext); 35 | } 36 | 37 | bool only_digits(string s) 38 | { 39 | for (int i = 0; s[i] != '\0'; i++) 40 | { 41 | if (s[i] < '0' || s[i] > '9') 42 | { 43 | return false; 44 | } 45 | } 46 | return true; 47 | } 48 | 49 | char rotate(char c, int n) 50 | { 51 | if (c >= 'a' && c <= 'z') 52 | { 53 | return 'a' + (c - 'a' + n) % 26; 54 | } else if (c >= 'A' && c <= 'Z') 55 | { 56 | return 'A' + (c - 'A' + n) % 26; 57 | } else 58 | { 59 | return c; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /code/probs/prob2/readability/readability.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int count_letters(string text); 6 | int count_words(string text); 7 | int count_sentences(string text); 8 | 9 | int main(void) 10 | { 11 | string text = get_string("Text: "); 12 | int letters = count_letters(text); 13 | int words = count_words(text); 14 | int sentences = count_sentences(text); 15 | float L = (float)letters / words * 100; 16 | float S = (float)sentences / words * 100; 17 | int index = round(0.0588 * L - 0.296 * S - 15.8); 18 | if (index < 1) 19 | { 20 | printf("Before Grade 1\n"); 21 | } else if (index >= 16) 22 | { 23 | printf("Grade 16+\n"); 24 | } else 25 | { 26 | printf("Grade %d\n", index); 27 | } 28 | } 29 | 30 | int count_letters(string text) 31 | { 32 | int count = 0; 33 | for (int i = 0; text[i] != '\0'; i++) 34 | { 35 | if (text[i] >= 'a' && text[i] <= 'z' || 36 | text[i] >= 'A' && text[i] <= 'Z') 37 | { 38 | count++; 39 | } 40 | } 41 | return count; 42 | } 43 | 44 | int count_words(string text) 45 | { 46 | int count = 0; 47 | for (int i = 0; text[i] != '\0'; i++) 48 | { 49 | 50 | if (text[i] == ' ') 51 | { 52 | count++; 53 | } 54 | } 55 | return count + 1; 56 | } 57 | 58 | int count_sentences(string text) 59 | { 60 | int count = 0; 61 | for (int i = 0; text[i] != '\0'; i++) 62 | { 63 | 64 | if (text[i] == '.' || text[i] == '!' || text[i] == '?') 65 | { 66 | count++; 67 | } 68 | } 69 | return count; 70 | } 71 | -------------------------------------------------------------------------------- /code/probs/prob2/substitution/substitution.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | int main(int argc, string argv[]) 7 | { 8 | // Check the number of arguments 9 | if (argc != 2) 10 | { 11 | printf("Usage: ./substitution key\n"); 12 | return 1; 13 | } 14 | string key = argv[1]; 15 | // Check if the key is valid 16 | // 1. 26 chars 17 | if (strlen(key) != 26) 18 | { 19 | printf("Key must contain 26 characters.\n"); 20 | return 1; 21 | } 22 | // 2. Only alphabetic character 23 | // 3. No duplicate characters 24 | int count[26] = {0}; 25 | for (int i = 0; i < strlen(key); i++) 26 | { 27 | char c = key[i]; 28 | if (!isalpha(c)) 29 | { 30 | printf("Key must only contain alphabetic characters.\n"); 31 | return 1; 32 | } 33 | c = tolower(c); 34 | if (count[c - 'a'] > 0) 35 | { 36 | printf("Key must not contain duplicate characters.\n"); 37 | return 1; 38 | } 39 | count[c - 'a']++; 40 | } 41 | // Prompt the user for plaintext 42 | string plaintext = get_string("plaintext: "); 43 | string ciphertext = plaintext; 44 | // Output ciphertext 45 | for (int i = 0; i < strlen(plaintext); i++) 46 | { 47 | if (islower(plaintext[i])) 48 | { 49 | int index = plaintext[i] - 'a'; 50 | char c = key[index]; 51 | ciphertext[i] = tolower(c); 52 | } else if (isupper(plaintext[i])) 53 | { 54 | int index = plaintext[i] - 'A'; 55 | char c = key[index]; 56 | ciphertext[i] = toupper(c); 57 | } 58 | } 59 | printf("ciphertext: %s\n", ciphertext); 60 | } 61 | -------------------------------------------------------------------------------- /code/probs/prob2/wordle/5.txt: -------------------------------------------------------------------------------- 1 | about 2 | other 3 | which 4 | their 5 | there 6 | first 7 | would 8 | these 9 | click 10 | price 11 | state 12 | email 13 | world 14 | music 15 | after 16 | video 17 | where 18 | books 19 | links 20 | years 21 | order 22 | items 23 | group 24 | under 25 | games 26 | could 27 | great 28 | hotel 29 | store 30 | terms 31 | right 32 | local 33 | those 34 | using 35 | phone 36 | forum 37 | based 38 | black 39 | check 40 | index 41 | being 42 | women 43 | today 44 | south 45 | pages 46 | found 47 | house 48 | photo 49 | power 50 | while 51 | three 52 | total 53 | place 54 | think 55 | north 56 | posts 57 | media 58 | water 59 | since 60 | guide 61 | board 62 | white 63 | small 64 | times 65 | sites 66 | level 67 | hours 68 | image 69 | title 70 | shall 71 | class 72 | still 73 | money 74 | every 75 | visit 76 | tools 77 | reply 78 | value 79 | press 80 | learn 81 | print 82 | stock 83 | point 84 | sales 85 | large 86 | table 87 | start 88 | model 89 | human 90 | movie 91 | march 92 | yahoo 93 | going 94 | study 95 | staff 96 | again 97 | april 98 | never 99 | users 100 | topic 101 | below 102 | party 103 | login 104 | legal 105 | above 106 | quote 107 | story 108 | rates 109 | young 110 | field 111 | paper 112 | girls 113 | night 114 | texas 115 | poker 116 | issue 117 | range 118 | court 119 | audio 120 | light 121 | write 122 | offer 123 | given 124 | files 125 | event 126 | china 127 | needs 128 | might 129 | month 130 | major 131 | areas 132 | space 133 | cards 134 | child 135 | enter 136 | share 137 | added 138 | radio 139 | until 140 | color 141 | track 142 | least 143 | trade 144 | david 145 | green 146 | close 147 | drive 148 | short 149 | means 150 | daily 151 | beach 152 | costs 153 | style 154 | front 155 | parts 156 | early 157 | miles 158 | sound 159 | works 160 | rules 161 | final 162 | adult 163 | thing 164 | cheap 165 | third 166 | gifts 167 | cover 168 | often 169 | watch 170 | deals 171 | words 172 | linux 173 | james 174 | heart 175 | error 176 | clear 177 | makes 178 | india 179 | taken 180 | known 181 | cases 182 | quick 183 | whole 184 | later 185 | basic 186 | shows 187 | along 188 | among 189 | death 190 | speed 191 | brand 192 | stuff 193 | japan 194 | doing 195 | loans 196 | shoes 197 | entry 198 | notes 199 | force 200 | river 201 | album 202 | views 203 | plans 204 | build 205 | types 206 | lines 207 | apply 208 | asked 209 | cross 210 | weeks 211 | lower 212 | union 213 | names 214 | leave 215 | teens 216 | woman 217 | cable 218 | score 219 | shown 220 | flash 221 | ideas 222 | allow 223 | homes 224 | super 225 | asian 226 | cause 227 | focus 228 | rooms 229 | voice 230 | comes 231 | brown 232 | forms 233 | glass 234 | happy 235 | smith 236 | thank 237 | prior 238 | sport 239 | ready 240 | round 241 | built 242 | blood 243 | earth 244 | nokia 245 | italy 246 | basis 247 | award 248 | peter 249 | extra 250 | rated 251 | quite 252 | horse 253 | stars 254 | lists 255 | owner 256 | takes 257 | bring 258 | input 259 | agent 260 | valid 261 | grand 262 | trial 263 | units 264 | wrote 265 | ships 266 | metal 267 | funds 268 | guest 269 | seems 270 | trust 271 | multi 272 | grade 273 | panel 274 | floor 275 | match 276 | plant 277 | sense 278 | stage 279 | goods 280 | maybe 281 | spain 282 | youth 283 | break 284 | dance 285 | apple 286 | enjoy 287 | block 288 | civil 289 | steel 290 | songs 291 | fixed 292 | wrong 293 | hands 294 | paris 295 | fully 296 | worth 297 | peace 298 | coast 299 | grant 300 | agree 301 | blogs 302 | scale 303 | stand 304 | frame 305 | chief 306 | gives 307 | heard 308 | begin 309 | royal 310 | clean 311 | bible 312 | suite 313 | vegas 314 | chris 315 | piece 316 | sheet 317 | seven 318 | older 319 | cells 320 | looks 321 | calls 322 | whose 323 | naked 324 | lives 325 | stone 326 | tests 327 | buyer 328 | steve 329 | label 330 | scott 331 | canon 332 | waste 333 | chair 334 | phase 335 | motor 336 | shirt 337 | crime 338 | count 339 | claim 340 | patch 341 | santa 342 | alone 343 | jones 344 | saint 345 | drugs 346 | joint 347 | fresh 348 | dates 349 | upper 350 | prime 351 | limit 352 | began 353 | louis 354 | steps 355 | shops 356 | creek 357 | urban 358 | tours 359 | labor 360 | admin 361 | heavy 362 | solid 363 | theme 364 | touch 365 | goals 366 | serve 367 | magic 368 | mount 369 | smart 370 | latin 371 | avoid 372 | birth 373 | virus 374 | abuse 375 | facts 376 | faith 377 | chain 378 | moved 379 | reach 380 | sorry 381 | gamma 382 | truth 383 | films 384 | owned 385 | draft 386 | chart 387 | jesus 388 | clubs 389 | equal 390 | codes 391 | kinds 392 | teams 393 | funny 394 | tried 395 | named 396 | laser 397 | harry 398 | taxes 399 | mouse 400 | brain 401 | dream 402 | false 403 | falls 404 | stats 405 | carry 406 | hello 407 | clips 408 | brief 409 | ended 410 | eight 411 | wants 412 | alert 413 | queen 414 | sweet 415 | diego 416 | truck 417 | votes 418 | ocean 419 | signs 420 | depth 421 | train 422 | feeds 423 | route 424 | frank 425 | anime 426 | speak 427 | query 428 | rural 429 | judge 430 | bytes 431 | fight 432 | filed 433 | korea 434 | banks 435 | kelly 436 | leads 437 | brian 438 | miami 439 | wales 440 | minor 441 | noted 442 | spent 443 | davis 444 | helps 445 | cycle 446 | sleep 447 | scene 448 | drink 449 | intel 450 | rings 451 | henry 452 | guess 453 | ahead 454 | devel 455 | delta 456 | cisco 457 | alpha 458 | bonus 459 | adobe 460 | trees 461 | dress 462 | refer 463 | babes 464 | layer 465 | spend 466 | clock 467 | ratio 468 | proof 469 | empty 470 | maine 471 | ideal 472 | specs 473 | parks 474 | cream 475 | boxes 476 | hills 477 | aware 478 | shape 479 | irish 480 | firms 481 | usage 482 | mixed 483 | exist 484 | wheel 485 | angel 486 | width 487 | noise 488 | array 489 | greek 490 | sharp 491 | occur 492 | knows 493 | coach 494 | kevin 495 | plate 496 | logic 497 | sizes 498 | plain 499 | costa 500 | trail 501 | buddy 502 | setup 503 | blues 504 | scope 505 | crazy 506 | bears 507 | mouth 508 | meter 509 | fruit 510 | mysql 511 | lewis 512 | sugar 513 | stick 514 | allen 515 | genre 516 | slide 517 | exact 518 | bound 519 | storm 520 | micro 521 | dolls 522 | paint 523 | delay 524 | pilot 525 | czech 526 | novel 527 | ultra 528 | idaho 529 | plays 530 | truly 531 | lodge 532 | broad 533 | swiss 534 | sarah 535 | clark 536 | foods 537 | guard 538 | newly 539 | raise 540 | drama 541 | bands 542 | lunch 543 | audit 544 | polls 545 | tower 546 | yours 547 | jason 548 | shell 549 | solar 550 | catch 551 | doubt 552 | tasks 553 | const 554 | doors 555 | forth 556 | bruce 557 | split 558 | twice 559 | egypt 560 | shift 561 | simon 562 | marks 563 | loved 564 | birds 565 | saved 566 | shots 567 | moore 568 | treat 569 | piano 570 | risks 571 | ports 572 | teach 573 | rapid 574 | hairy 575 | dutch 576 | boots 577 | holds 578 | pulse 579 | metro 580 | strip 581 | pearl 582 | heads 583 | logos 584 | honda 585 | bills 586 | opera 587 | asset 588 | blank 589 | humor 590 | lived 591 | tight 592 | meant 593 | plane 594 | meets 595 | tampa 596 | grace 597 | susan 598 | adams 599 | villa 600 | inner 601 | roman 602 | taste 603 | trips 604 | sides 605 | turns 606 | cache 607 | lease 608 | proud 609 | giant 610 | seats 611 | alarm 612 | usual 613 | angle 614 | vinyl 615 | worst 616 | honor 617 | eagle 618 | pants 619 | nurse 620 | quiet 621 | comic 622 | crown 623 | maker 624 | crack 625 | picks 626 | smoke 627 | craft 628 | apart 629 | blind 630 | coins 631 | gross 632 | epson 633 | actor 634 | finds 635 | fifth 636 | prize 637 | dirty 638 | wayne 639 | alive 640 | prove 641 | wings 642 | ridge 643 | modem 644 | larry 645 | skill 646 | moves 647 | throw 648 | trend 649 | rhode 650 | worse 651 | boats 652 | tells 653 | fiber 654 | graph 655 | talks 656 | bonds 657 | fraud 658 | roger 659 | crash 660 | inter 661 | grove 662 | spray 663 | roads 664 | faces 665 | mayor 666 | yield 667 | hence 668 | radar 669 | lakes 670 | diary 671 | kings 672 | flags 673 | baker 674 | shock 675 | walls 676 | ebony 677 | drawn 678 | beast 679 | dodge 680 | pizza 681 | yards 682 | woods 683 | jokes 684 | twiki 685 | globe 686 | dicke 687 | kerry 688 | ghost 689 | pride 690 | keith 691 | linda 692 | chile 693 | maria 694 | brass 695 | plaza 696 | quest 697 | trans 698 | booty 699 | acres 700 | venue 701 | vital 702 | excel 703 | modes 704 | enemy 705 | wells 706 | opens 707 | lucky 708 | thick 709 | iraqi 710 | vista 711 | chips 712 | terry 713 | flood 714 | arena 715 | grown 716 | jerry 717 | smile 718 | lands 719 | armed 720 | laura 721 | tokyo 722 | nikon 723 | candy 724 | pills 725 | tiger 726 | folks 727 | boost 728 | icons 729 | moral 730 | keeps 731 | pound 732 | roses 733 | bread 734 | tough 735 | gonna 736 | chest 737 | billy 738 | craig 739 | solve 740 | nancy 741 | tones 742 | sight 743 | towns 744 | worry 745 | reads 746 | roles 747 | glory 748 | saudi 749 | fault 750 | karen 751 | jimmy 752 | rugby 753 | fluid 754 | barry 755 | devil 756 | grass 757 | marie 758 | kenya 759 | sized 760 | manga 761 | theft 762 | swing 763 | dated 764 | shoot 765 | elite 766 | poems 767 | robot 768 | winds 769 | gnome 770 | roots 771 | noble 772 | shore 773 | loves 774 | loose 775 | slots 776 | rocks 777 | genes 778 | hosts 779 | atlas 780 | feels 781 | ralph 782 | corps 783 | liver 784 | decor 785 | texts 786 | evans 787 | fails 788 | aging 789 | alice 790 | intro 791 | clerk 792 | mills 793 | jeans 794 | fonts 795 | favor 796 | sigma 797 | xhtml 798 | aside 799 | essay 800 | camps 801 | aaron 802 | trace 803 | packs 804 | spoke 805 | arrow 806 | rough 807 | weird 808 | holes 809 | blade 810 | meals 811 | robin 812 | strap 813 | crowd 814 | cloud 815 | valve 816 | knife 817 | shelf 818 | liked 819 | adopt 820 | fotos 821 | outer 822 | tales 823 | islam 824 | nodes 825 | seeds 826 | cited 827 | skype 828 | tired 829 | steam 830 | acute 831 | stood 832 | carol 833 | stack 834 | curve 835 | amber 836 | trunk 837 | waves 838 | camel 839 | lamps 840 | juice 841 | chase 842 | sauce 843 | beads 844 | flows 845 | fewer 846 | proxy 847 | lanka 848 | voted 849 | bikes 850 | gates 851 | slave 852 | lycos 853 | zdnet 854 | combo 855 | haven 856 | charm 857 | basin 858 | ranch 859 | drunk 860 | toner 861 | latex 862 | delhi 863 | alien 864 | broke 865 | nepal 866 | nylon 867 | discs 868 | rocky 869 | fleet 870 | bunch 871 | cents 872 | omega 873 | civic 874 | saver 875 | grill 876 | grain 877 | wanna 878 | seeks 879 | gains 880 | spots 881 | salon 882 | turbo 883 | thats 884 | aimed 885 | reset 886 | brush 887 | spare 888 | kodak 889 | skirt 890 | honey 891 | gauge 892 | faced 893 | sixth 894 | farms 895 | cheat 896 | sandy 897 | macro 898 | laugh 899 | pitch 900 | autos 901 | perry 902 | dozen 903 | teeth 904 | cloth 905 | stamp 906 | lotus 907 | cargo 908 | salem 909 | likes 910 | tapes 911 | zones 912 | races 913 | maple 914 | depot 915 | blend 916 | julie 917 | janet 918 | phpbb 919 | probe 920 | helen 921 | lopez 922 | debug 923 | chuck 924 | ebook 925 | bingo 926 | minds 927 | xanax 928 | sunny 929 | leeds 930 | cedar 931 | blair 932 | hopes 933 | mason 934 | burns 935 | pumps 936 | mario 937 | utils 938 | pairs 939 | chose 940 | blast 941 | tommy 942 | brake 943 | congo 944 | olive 945 | cyber 946 | clone 947 | relay 948 | tears 949 | oasis 950 | angry 951 | lover 952 | rolls 953 | malta 954 | daddy 955 | ferry 956 | omaha 957 | loads 958 | motel 959 | rally 960 | dying 961 | stuck 962 | stops 963 | vocal 964 | organ 965 | lemon 966 | toxic 967 | bench 968 | rider 969 | butts 970 | bobby 971 | sheep 972 | wines 973 | salad 974 | paste 975 | katie 976 | relax 977 | sword 978 | sells 979 | coral 980 | pixel 981 | float 982 | colin 983 | paths 984 | acids 985 | dairy 986 | admit 987 | fancy 988 | samoa 989 | squad 990 | wages 991 | males 992 | chaos 993 | wheat 994 | bases 995 | unity 996 | bride 997 | begun 998 | socks 999 | essex 1000 | fever -------------------------------------------------------------------------------- /code/probs/prob2/wordle/6.txt: -------------------------------------------------------------------------------- 1 | search 2 | online 3 | people 4 | health 5 | should 6 | system 7 | policy 8 | number 9 | please 10 | rights 11 | public 12 | school 13 | review 14 | united 15 | center 16 | travel 17 | report 18 | member 19 | before 20 | hotels 21 | office 22 | design 23 | posted 24 | within 25 | states 26 | family 27 | prices 28 | sports 29 | county 30 | access 31 | change 32 | rating 33 | during 34 | return 35 | events 36 | little 37 | movies 38 | source 39 | author 40 | around 41 | course 42 | canada 43 | credit 44 | estate 45 | select 46 | photos 47 | thread 48 | market 49 | really 50 | action 51 | series 52 | second 53 | forums 54 | better 55 | friend 56 | server 57 | issues 58 | street 59 | things 60 | person 61 | mobile 62 | offers 63 | recent 64 | stores 65 | memory 66 | social 67 | august 68 | create 69 | single 70 | latest 71 | status 72 | browse 73 | seller 74 | always 75 | result 76 | groups 77 | making 78 | future 79 | london 80 | become 81 | garden 82 | listed 83 | energy 84 | images 85 | notice 86 | others 87 | format 88 | months 89 | safety 90 | having 91 | common 92 | living 93 | called 94 | period 95 | window 96 | france 97 | region 98 | island 99 | record 100 | direct 101 | update 102 | either 103 | centre 104 | europe 105 | topics 106 | videos 107 | global 108 | player 109 | lyrics 110 | submit 111 | amount 112 | though 113 | thanks 114 | weight 115 | choose 116 | points 117 | camera 118 | domain 119 | beauty 120 | models 121 | simple 122 | friday 123 | annual 124 | google 125 | church 126 | method 127 | active 128 | figure 129 | enough 130 | higher 131 | yellow 132 | french 133 | nature 134 | orders 135 | africa 136 | growth 137 | agency 138 | monday 139 | income 140 | engine 141 | double 142 | screen 143 | across 144 | needed 145 | season 146 | effect 147 | sunday 148 | casino 149 | volume 150 | anyone 151 | silver 152 | inside 153 | mature 154 | rather 155 | supply 156 | robert 157 | skills 158 | advice 159 | career 160 | rental 161 | middle 162 | taking 163 | values 164 | coming 165 | object 166 | length 167 | client 168 | follow 169 | sample 170 | george 171 | choice 172 | artist 173 | levels 174 | letter 175 | phones 176 | summer 177 | degree 178 | button 179 | matter 180 | custom 181 | almost 182 | editor 183 | female 184 | thomas 185 | cancer 186 | reason 187 | spring 188 | answer 189 | police 190 | wanted 191 | unique 192 | survey 193 | animal 194 | mexico 195 | secure 196 | simply 197 | paypal 198 | option 199 | master 200 | valley 201 | larger 202 | impact 203 | strong 204 | ground 205 | owners 206 | cities 207 | ensure 208 | budget 209 | guides 210 | amazon 211 | retail 212 | useful 213 | trying 214 | mother 215 | joined 216 | modern 217 | senior 218 | charge 219 | normal 220 | entire 221 | output 222 | likely 223 | indian 224 | dating 225 | filter 226 | longer 227 | behind 228 | german 229 | buying 230 | allows 231 | boards 232 | string 233 | unless 234 | target 235 | except 236 | moving 237 | brands 238 | places 239 | pretty 240 | winter 241 | boston 242 | medium 243 | itself 244 | papers 245 | awards 246 | studio 247 | reader 248 | device 249 | remote 250 | theory 251 | remove 252 | visual 253 | martin 254 | manual 255 | agents 256 | repair 257 | sector 258 | jersey 259 | father 260 | quotes 261 | driver 262 | campus 263 | beyond 264 | museum 265 | former 266 | parent 267 | bottom 268 | detail 269 | switch 270 | titles 271 | basket 272 | weekly 273 | demand 274 | square 275 | nation 276 | module 277 | resort 278 | random 279 | motion 280 | forest 281 | couple 282 | giving 283 | chance 284 | vision 285 | ending 286 | listen 287 | accept 288 | lowest 289 | highly 290 | appear 291 | actual 292 | coffee 293 | easily 294 | poster 295 | closed 296 | league 297 | minute 298 | effort 299 | fields 300 | breast 301 | kansas 302 | doctor 303 | reduce 304 | enable 305 | leader 306 | israel 307 | flight 308 | pocket 309 | factor 310 | stream 311 | signed 312 | errors 313 | worked 314 | sorted 315 | myself 316 | expert 317 | became 318 | orange 319 | marine 320 | guitar 321 | saying 322 | spirit 323 | claims 324 | branch 325 | manage 326 | corner 327 | oregon 328 | tables 329 | define 330 | racing 331 | column 332 | plants 333 | avenue 334 | mental 335 | viewed 336 | moment 337 | attack 338 | damage 339 | placed 340 | dollar 341 | bridge 342 | native 343 | played 344 | shirts 345 | profit 346 | expect 347 | russia 348 | golden 349 | senate 350 | forces 351 | turned 352 | delete 353 | signal 354 | issued 355 | sexual 356 | flower 357 | passed 358 | stated 359 | hawaii 360 | covers 361 | adults 362 | script 363 | served 364 | dining 365 | dakota 366 | handle 367 | pubmed 368 | looked 369 | logged 370 | laptop 371 | nearly 372 | forgot 373 | origin 374 | gaming 375 | faster 376 | dallas 377 | bought 378 | broken 379 | alaska 380 | battle 381 | equity 382 | speech 383 | shared 384 | sounds 385 | forced 386 | height 387 | obtain 388 | remain 389 | failed 390 | secret 391 | austin 392 | andrew 393 | assets 394 | injury 395 | joseph 396 | lawyer 397 | portal 398 | gratis 399 | toward 400 | assist 401 | comics 402 | houses 403 | postal 404 | finish 405 | daniel 406 | brazil 407 | static 408 | hunter 409 | famous 410 | writer 411 | gender 412 | colour 413 | vendor 414 | junior 415 | ladies 416 | ticket 417 | agreed 418 | soccer 419 | import 420 | christ 421 | scheme 422 | manner 423 | matrix 424 | turkey 425 | proper 426 | inches 427 | shares 428 | colors 429 | appeal 430 | cruise 431 | disney 432 | drives 433 | dealer 434 | nearby 435 | happen 436 | miller 437 | caused 438 | luxury 439 | frames 440 | indeed 441 | easier 442 | adding 443 | mostly 444 | taylor 445 | prints 446 | suites 447 | hidden 448 | serial 449 | relief 450 | planet 451 | copies 452 | recipe 453 | permit 454 | seeing 455 | tennis 456 | bureau 457 | pieces 458 | dinner 459 | sydney 460 | stress 461 | trends 462 | fourth 463 | wilson 464 | charts 465 | census 466 | poetry 467 | lights 468 | forget 469 | sister 470 | newest 471 | extent 472 | export 473 | sweden 474 | backup 475 | spread 476 | expand 477 | jordan 478 | affect 479 | virgin 480 | raised 481 | blonde 482 | albums 483 | cheats 484 | guests 485 | hosted 486 | nevada 487 | agenda 488 | anyway 489 | tracks 490 | prince 491 | circle 492 | grants 493 | edward 494 | launch 495 | symbol 496 | crafts 497 | fiscal 498 | styles 499 | denver 500 | filled 501 | notify 502 | cables 503 | cotton 504 | dental 505 | killed 506 | border 507 | debate 508 | starts 509 | causes 510 | opened 511 | scores 512 | comedy 513 | weblog 514 | linear 515 | edited 516 | jewish 517 | linked 518 | wonder 519 | begins 520 | reform 521 | alerts 522 | assume 523 | howard 524 | leaves 525 | checks 526 | safari 527 | tested 528 | formal 529 | hockey 530 | showed 531 | cancel 532 | limits 533 | outlet 534 | winner 535 | potter 536 | modify 537 | oxford 538 | patent 539 | eating 540 | mirror 541 | kernel 542 | stocks 543 | buyers 544 | taiwan 545 | chosen 546 | greece 547 | labour 548 | nights 549 | behalf 550 | liquid 551 | salary 552 | saving 553 | empire 554 | resume 555 | twenty 556 | avatar 557 | helped 558 | decide 559 | guinea 560 | muscle 561 | attend 562 | shower 563 | holdem 564 | seemed 565 | finder 566 | unable 567 | insert 568 | alumni 569 | themes 570 | powers 571 | heaven 572 | norway 573 | asking 574 | blocks 575 | bodies 576 | paying 577 | carbon 578 | crisis 579 | bright 580 | header 581 | formed 582 | sheets 583 | puerto 584 | plasma 585 | banner 586 | dreams 587 | stands 588 | latina 589 | wheels 590 | router 591 | poland 592 | folder 593 | womens 594 | upload 595 | voting 596 | courts 597 | regard 598 | exists 599 | smooth 600 | strike 601 | narrow 602 | threat 603 | castle 604 | missed 605 | labels 606 | acting 607 | stored 608 | stable 609 | lesson 610 | cinema 611 | severe 612 | deluxe 613 | fabric 614 | visits 615 | flying 616 | berlin 617 | pounds 618 | desire 619 | caught 620 | marked 621 | driven 622 | bottle 623 | rubber 624 | legend 625 | python 626 | entity 627 | holder 628 | duties 629 | ethics 630 | dragon 631 | brings 632 | stereo 633 | commit 634 | jacket 635 | oracle 636 | excess 637 | stamps 638 | mining 639 | garage 640 | thongs 641 | morgan 642 | prayer 643 | cheese 644 | fetish 645 | apache 646 | fellow 647 | lounge 648 | hilton 649 | horror 650 | debian 651 | mainly 652 | ethnic 653 | occurs 654 | layout 655 | horses 656 | donate 657 | taught 658 | worker 659 | temple 660 | breaks 661 | waters 662 | prefer 663 | harris 664 | toyota 665 | vector 666 | shaved 667 | buffer 668 | purple 669 | mutual 670 | syntax 671 | prison 672 | chairs 673 | sierra 674 | desert 675 | oldest 676 | steven 677 | summit 678 | spaces 679 | escape 680 | cialis 681 | glance 682 | arcade 683 | filing 684 | foster 685 | trials 686 | tissue 687 | aspect 688 | counts 689 | priced 690 | closer 691 | shadow 692 | riding 693 | clinic 694 | korean 695 | packet 696 | funded 697 | extend 698 | dublin 699 | nelson 700 | murder 701 | grades 702 | digest 703 | rescue 704 | losses 705 | combat 706 | abroad 707 | arthur 708 | walker 709 | gordon 710 | serves 711 | palace 712 | verify 713 | copper 714 | nobody 715 | cloudy 716 | plenty 717 | throat 718 | ignore 719 | wealth 720 | vacuum 721 | writes 722 | plates 723 | essays 724 | fairly 725 | config 726 | stupid 727 | harbor 728 | puzzle 729 | rising 730 | latter 731 | repeat 732 | pupils 733 | casual 734 | polish 735 | lovely 736 | extras 737 | clause 738 | troops 739 | indoor 740 | broker 741 | trucks 742 | partly 743 | donald 744 | sensor 745 | angels 746 | deputy 747 | sealed 748 | loaded 749 | scenes 750 | finger 751 | locate 752 | wooden 753 | motors 754 | shorts 755 | johnny 756 | facing 757 | refund 758 | trembl 759 | emails 760 | cyprus 761 | makers 762 | hearts 763 | carter 764 | legacy 765 | danger 766 | widely 767 | phrase 768 | hybrid 769 | bigger 770 | diesel 771 | versus 772 | exceed 773 | babies 774 | albert 775 | graham 776 | compaq 777 | slowly 778 | infant 779 | samuel 780 | unlike 781 | wright 782 | proven 783 | cached 784 | warren 785 | comply 786 | cherry 787 | webcam 788 | nutten 789 | quebec 790 | dennis 791 | socket 792 | silent 793 | humans 794 | analog 795 | facial 796 | talent 797 | seeker 798 | wisdom 799 | offset 800 | payday 801 | philip 802 | stages 803 | powder 804 | assess 805 | stones 806 | losing 807 | gospel 808 | knight 809 | earned 810 | parker 811 | triple 812 | cooper 813 | titans 814 | sought 815 | median 816 | herein 817 | basics 818 | carpet 819 | struct 820 | lenses 821 | binary 822 | walter 823 | warner 824 | inkjet 825 | wizard 826 | actors 827 | liable 828 | morris 829 | eminem 830 | recall 831 | picked 832 | belief 833 | bikini 834 | lookup 835 | ottawa 836 | refine 837 | bidder 838 | singer 839 | herald 840 | plugin 841 | diving 842 | invite 843 | terror 844 | thirty 845 | refers 846 | victim 847 | arrive 848 | sunset 849 | framed 850 | inform 851 | murray 852 | intent 853 | oxygen 854 | cookie 855 | canyon 856 | meters 857 | merely 858 | passes 859 | durham 860 | muslim 861 | sleeve 862 | stroke 863 | sharon 864 | gloves 865 | skiing 866 | flickr 867 | timing 868 | denied 869 | deaths 870 | rivers 871 | thumbs 872 | twelve 873 | decade 874 | titten 875 | drinks 876 | voices 877 | honest 878 | albany 879 | coding 880 | hiking 881 | pierre 882 | arabia 883 | panama 884 | athens 885 | judges 886 | walked 887 | nissan 888 | afraid 889 | norton 890 | locked 891 | fusion 892 | canvas 893 | parish 894 | coupon 895 | nurses 896 | tagged 897 | killer 898 | bishop 899 | pulled 900 | shaped 901 | farmer 902 | heroes 903 | floral 904 | fisher 905 | spears 906 | worlds 907 | guilty 908 | tablet 909 | crimes 910 | moscow 911 | thesis 912 | pixels 913 | totals 914 | afford 915 | turner 916 | spoken 917 | stayed 918 | redeem 919 | rogers 920 | regime 921 | wishes 922 | depend 923 | differ 924 | monica 925 | breath 926 | candle 927 | herbal 928 | loving 929 | deemed 930 | hacker 931 | madrid 932 | margin 933 | solely 934 | norman 935 | headed 936 | voters 937 | murphy 938 | thinks 939 | justin 940 | tricks 941 | panels 942 | tongue 943 | danish 944 | monkey 945 | invest 946 | lovers 947 | atomic 948 | approx 949 | arabic 950 | rachel 951 | chains 952 | engage 953 | quoted 954 | bronze 955 | sender 956 | spouse 957 | exotic 958 | viewer 959 | signup 960 | proved 961 | salmon 962 | butter 963 | pepper 964 | weapon 965 | burden 966 | finest 967 | realty 968 | autumn 969 | toilet 970 | ranked 971 | routes 972 | packed 973 | timely 974 | talked 975 | villas 976 | peeing 977 | brooks 978 | newton 979 | whilst 980 | prompt 981 | ebooks 982 | victor 983 | attach 984 | spider 985 | ranges 986 | trails 987 | hudson 988 | divine 989 | dialog 990 | venues 991 | shield 992 | prague 993 | pickup 994 | nascar 995 | sacred 996 | chrome 997 | oliver 998 | delays 999 | scored 1000 | belong -------------------------------------------------------------------------------- /code/probs/prob2/wordle/7.txt: -------------------------------------------------------------------------------- 1 | contact 2 | service 3 | product 4 | support 5 | message 6 | through 7 | privacy 8 | company 9 | general 10 | january 11 | reviews 12 | program 13 | details 14 | because 15 | results 16 | address 17 | subject 18 | between 19 | special 20 | website 21 | project 22 | version 23 | section 24 | related 25 | members 26 | network 27 | systems 28 | without 29 | current 30 | control 31 | history 32 | account 33 | digital 34 | profile 35 | another 36 | quality 37 | listing 38 | content 39 | country 40 | private 41 | compare 42 | include 43 | college 44 | article 45 | provide 46 | process 47 | science 48 | english 49 | windows 50 | gallery 51 | however 52 | october 53 | library 54 | medical 55 | looking 56 | comment 57 | working 58 | against 59 | payment 60 | student 61 | problem 62 | options 63 | america 64 | example 65 | changes 66 | release 67 | request 68 | picture 69 | meeting 70 | similar 71 | schools 72 | million 73 | popular 74 | stories 75 | journal 76 | reports 77 | welcome 78 | central 79 | council 80 | archive 81 | society 82 | friends 83 | edition 84 | further 85 | updated 86 | already 87 | studies 88 | several 89 | display 90 | limited 91 | powered 92 | natural 93 | whether 94 | weather 95 | average 96 | records 97 | present 98 | written 99 | federal 100 | hosting 101 | tickets 102 | finance 103 | minutes 104 | reading 105 | usually 106 | percent 107 | getting 108 | germany 109 | various 110 | receive 111 | methods 112 | chapter 113 | manager 114 | michael 115 | florida 116 | license 117 | holiday 118 | writing 119 | effects 120 | created 121 | kingdom 122 | thought 123 | storage 124 | summary 125 | western 126 | overall 127 | package 128 | players 129 | started 130 | someone 131 | printer 132 | believe 133 | nothing 134 | certain 135 | running 136 | jewelry 137 | islands 138 | british 139 | sellers 140 | tuesday 141 | lesbian 142 | machine 143 | returns 144 | capital 145 | england 146 | culture 147 | courses 148 | airport 149 | foreign 150 | outside 151 | channel 152 | located 153 | primary 154 | numbers 155 | browser 156 | purpose 157 | feature 158 | cameras 159 | ratings 160 | chicago 161 | sources 162 | regular 163 | station 164 | rentals 165 | improve 166 | parents 167 | kitchen 168 | wedding 169 | disease 170 | perfect 171 | classic 172 | command 173 | william 174 | express 175 | success 176 | maximum 177 | warning 178 | forward 179 | flowers 180 | animals 181 | housing 182 | catalog 183 | traffic 184 | ireland 185 | testing 186 | instead 187 | leading 188 | fitness 189 | chinese 190 | opinion 191 | greater 192 | develop 193 | artists 194 | session 195 | century 196 | pacific 197 | mailing 198 | vehicle 199 | default 200 | require 201 | outdoor 202 | morning 203 | protein 204 | partner 205 | authors 206 | faculty 207 | parties 208 | mission 209 | richard 210 | ability 211 | battery 212 | defined 213 | playing 214 | virtual 215 | answers 216 | offered 217 | surface 218 | minimum 219 | variety 220 | finally 221 | updates 222 | desktop 223 | classes 224 | officer 225 | respect 226 | unknown 227 | teacher 228 | workers 229 | georgia 230 | showing 231 | benefit 232 | funding 233 | devices 234 | fiction 235 | watches 236 | careers 237 | complex 238 | spanish 239 | setting 240 | economy 241 | highest 242 | helpful 243 | monthly 244 | musical 245 | angeles 246 | changed 247 | russian 248 | largest 249 | african 250 | justice 251 | connect 252 | applied 253 | advance 254 | auction 255 | allowed 256 | correct 257 | charles 258 | selling 259 | species 260 | pricing 261 | fashion 262 | monitor 263 | trading 264 | clients 265 | actions 266 | discuss 267 | markets 268 | leather 269 | patient 270 | perhaps 271 | persons 272 | village 273 | amateur 274 | factors 275 | zealand 276 | balance 277 | replies 278 | initial 279 | fishing 280 | fantasy 281 | letters 282 | context 283 | install 284 | apparel 285 | johnson 286 | quickly 287 | dollars 288 | driving 289 | surgery 290 | brought 291 | himself 292 | diamond 293 | servers 294 | seconds 295 | arizona 296 | keyword 297 | italian 298 | freedom 299 | premium 300 | upgrade 301 | growing 302 | hearing 303 | eastern 304 | therapy 305 | entries 306 | serious 307 | samsung 308 | efforts 309 | nursing 310 | defense 311 | covered 312 | protect 313 | prevent 314 | finding 315 | affairs 316 | towards 317 | suggest 318 | charges 319 | reasons 320 | talking 321 | element 322 | quarter 323 | missing 324 | sitemap 325 | houston 326 | centers 327 | opening 328 | reserve 329 | recipes 330 | plastic 331 | produce 332 | counter 333 | failure 334 | follows 335 | weekend 336 | ontario 337 | readers 338 | jackson 339 | leaders 340 | posters 341 | parking 342 | seattle 343 | brother 344 | pattern 345 | theatre 346 | earlier 347 | sponsor 348 | indiana 349 | objects 350 | evening 351 | nuclear 352 | promote 353 | appears 354 | decided 355 | designs 356 | tourism 357 | savings 358 | graphic 359 | binding 360 | winning 361 | atlanta 362 | credits 363 | clearly 364 | enlarge 365 | revenue 366 | measure 367 | flights 368 | experts 369 | vintage 370 | exactly 371 | explore 372 | concept 373 | reality 374 | billion 375 | nations 376 | speaker 377 | offices 378 | managed 379 | toronto 380 | theater 381 | springs 382 | perform 383 | healthy 384 | drivers 385 | figures 386 | married 387 | sharing 388 | waiting 389 | banking 390 | conduct 391 | calling 392 | serving 393 | matters 394 | reduced 395 | physics 396 | extreme 397 | samples 398 | removed 399 | singles 400 | amounts 401 | contain 402 | crystal 403 | academy 404 | dynamic 405 | regions 406 | meaning 407 | posting 408 | instant 409 | viewing 410 | aspects 411 | austria 412 | utility 413 | preview 414 | despite 415 | degrees 416 | seeking 417 | phoenix 418 | comfort 419 | smoking 420 | becomes 421 | alabama 422 | achieve 423 | carried 424 | clothes 425 | circuit 426 | printed 427 | removal 428 | factory 429 | revised 430 | optical 431 | amazing 432 | feeling 433 | bedroom 434 | orlando 435 | lawyers 436 | advisor 437 | remains 438 | generic 439 | transit 440 | compact 441 | keeping 442 | attempt 443 | matches 444 | engines 445 | stephen 446 | climate 447 | alcohol 448 | walking 449 | explain 450 | smaller 451 | modules 452 | concern 453 | holding 454 | trouble 455 | dealers 456 | helping 457 | totally 458 | organic 459 | leaving 460 | cooking 461 | respond 462 | entered 463 | belgium 464 | highway 465 | booking 466 | portion 467 | biology 468 | ancient 469 | leisure 470 | learned 471 | husband 472 | britain 473 | concert 474 | adopted 475 | carrier 476 | reflect 477 | deliver 478 | lessons 479 | treated 480 | confirm 481 | neither 482 | offline 483 | replace 484 | reached 485 | enabled 486 | montana 487 | enhance 488 | adapter 489 | laptops 490 | editors 491 | threads 492 | supreme 493 | weapons 494 | episode 495 | planned 496 | antonio 497 | charged 498 | gourmet 499 | orleans 500 | prepare 501 | illegal 502 | lincoln 503 | premier 504 | consent 505 | contest 506 | chamber 507 | typical 508 | chicken 509 | sending 510 | tonight 511 | spyware 512 | formula 513 | periods 514 | attacks 515 | resorts 516 | biggest 517 | visitor 518 | gateway 519 | drawing 520 | ordered 521 | happens 522 | romance 523 | focused 524 | bargain 525 | vermont 526 | hunting 527 | cutting 528 | writers 529 | mapping 530 | indexed 531 | cartoon 532 | granted 533 | choices 534 | outlook 535 | massive 536 | denmark 537 | poverty 538 | patrick 539 | mystery 540 | journey 541 | bidding 542 | charter 543 | barbara 544 | blogger 545 | reverse 546 | deposit 547 | seminar 548 | specify 549 | formats 550 | depends 551 | editing 552 | notices 553 | detroit 554 | toshiba 555 | airline 556 | surveys 557 | sitting 558 | putting 559 | vietnam 560 | trailer 561 | gardens 562 | antique 563 | willing 564 | density 565 | hundred 566 | strange 567 | mention 568 | amended 569 | operate 570 | doctors 571 | domains 572 | siemens 573 | capture 574 | buffalo 575 | camping 576 | welfare 577 | medline 578 | massage 579 | closing 580 | monster 581 | columns 582 | cookies 583 | cruises 584 | forever 585 | captain 586 | imagine 587 | heating 588 | scripts 589 | dealing 590 | liberal 591 | livecam 592 | matthew 593 | hobbies 594 | console 595 | shipped 596 | voltage 597 | anthony 598 | loading 599 | ongoing 600 | imaging 601 | betting 602 | liberty 603 | wyoming 604 | convert 605 | analyst 606 | finland 607 | derived 608 | postage 609 | applies 610 | casinos 611 | filters 612 | capable 613 | douglas 614 | elected 615 | victory 616 | madison 617 | citizen 618 | anytime 619 | lecture 620 | genetic 621 | promise 622 | cabinet 623 | tiffany 624 | collect 625 | streets 626 | turning 627 | inquiry 628 | checked 629 | exhibit 630 | visible 631 | mercury 632 | victims 633 | burning 634 | coupons 635 | russell 636 | obvious 637 | passing 638 | awarded 639 | clinton 640 | masters 641 | alberta 642 | commons 643 | arrival 644 | pottery 645 | awesome 646 | mexican 647 | desired 648 | assumes 649 | heights 650 | firefox 651 | expense 652 | venture 653 | healing 654 | studios 655 | buttons 656 | winners 657 | rolling 658 | arrived 659 | creates 660 | tourist 661 | senator 662 | lodging 663 | stopped 664 | closely 665 | visited 666 | targets 667 | counsel 668 | invited 669 | farmers 670 | queries 671 | ukraine 672 | absence 673 | nearest 674 | cluster 675 | vendors 676 | whereas 677 | partial 678 | couples 679 | ranking 680 | simpson 681 | sublime 682 | trusted 683 | receipt 684 | knowing 685 | uniform 686 | dancing 687 | publish 688 | pioneer 689 | acrobat 690 | thermal 691 | telling 692 | coastal 693 | charity 694 | hungary 695 | segment 696 | realize 697 | insight 698 | secrets 699 | philips 700 | penalty 701 | glasses 702 | enables 703 | builder 704 | jessica 705 | stewart 706 | outcome 707 | centres 708 | charger 709 | cooling 710 | divorce 711 | shopper 712 | exposed 713 | telecom 714 | founded 715 | chronic 716 | trained 717 | tobacco 718 | roberts 719 | pension 720 | worship 721 | herself 722 | damages 723 | diverse 724 | passion 725 | defence 726 | patches 727 | divided 728 | insider 729 | pleased 730 | vitamin 731 | genuine 732 | raising 733 | billing 734 | combine 735 | examine 736 | bristol 737 | sectors 738 | grounds 739 | regards 740 | baskets 741 | studied 742 | profits 743 | florist 744 | deutsch 745 | funeral 746 | enjoyed 747 | charlie 748 | francis 749 | noticed 750 | signals 751 | symbols 752 | packard 753 | holders 754 | swedish 755 | witness 756 | collins 757 | gadgets 758 | glasgow 759 | impacts 760 | induced 761 | linking 762 | appeals 763 | illness 764 | islamic 765 | pending 766 | lebanon 767 | kennedy 768 | teenage 769 | vincent 770 | secured 771 | unusual 772 | routine 773 | toolbar 774 | wearing 775 | mounted 776 | habitat 777 | scanner 778 | integer 779 | engaged 780 | falling 781 | dropped 782 | besides 783 | moments 784 | strings 785 | torture 786 | deleted 787 | antenna 788 | assumed 789 | killing 790 | memphis 791 | harvard 792 | brokers 793 | podcast 794 | seasons 795 | latinas 796 | suppose 797 | involve 798 | younger 799 | rapidly 800 | outline 801 | holland 802 | demands 803 | careful 804 | tracked 805 | minimal 806 | lottery 807 | licence 808 | romania 809 | consult 810 | greatly 811 | cycling 812 | turkish 813 | pentium 814 | quantum 815 | largely 816 | pointer 817 | stretch 818 | permits 819 | cleaner 820 | cricket 821 | feeding 822 | olympic 823 | customs 824 | rainbow 825 | decline 826 | israeli 827 | hewlett 828 | proceed 829 | jamaica 830 | britney 831 | katrina 832 | founder 833 | dispute 834 | adverse 835 | excerpt 836 | perfume 837 | restore 838 | creator 839 | museums 840 | tracker 841 | passage 842 | jelsoft 843 | headset 844 | oakland 845 | suicide 846 | logical 847 | extract 848 | payable 849 | retired 850 | remarks 851 | decades 852 | arising 853 | railway 854 | pointed 855 | causing 856 | mistake 857 | mineral 858 | fortune 859 | claimed 860 | screens 861 | planner 862 | croatia 863 | stadium 864 | edwards 865 | costume 866 | norfolk 867 | painted 868 | artwork 869 | ethical 870 | schemes 871 | neutral 872 | bedding 873 | joining 874 | heading 875 | equally 876 | bearing 877 | seniors 878 | violent 879 | cottage 880 | mozilla 881 | anymore 882 | locator 883 | resolve 884 | melissa 885 | nigeria 886 | ceiling 887 | anybody 888 | singing 889 | optimal 890 | sucking 891 | reuters 892 | manuals 893 | watched 894 | thereof 895 | ranging 896 | repairs 897 | hanging 898 | colored 899 | routing 900 | stanley 901 | elegant 902 | renewal 903 | opposed 904 | scoring 905 | sisters 906 | critics 907 | madonna 908 | soldier 909 | mirrors 910 | assault 911 | bowling 912 | solving 913 | deviant 914 | imports 915 | suspect 916 | crucial 917 | tuition 918 | threats 919 | puzzles 920 | damaged 921 | destroy 922 | olympus 923 | starter 924 | luggage 925 | stylish 926 | grocery 927 | kenneth 928 | jackets 929 | excited 930 | recover 931 | delayed 932 | exclude 933 | anxiety 934 | spatial 935 | ceramic 936 | fingers 937 | raleigh 938 | qualify 939 | diagram 940 | beijing 941 | peoples 942 | advised 943 | calgary 944 | interim 945 | approve 946 | calcium 947 | newport 948 | indians 949 | harvest 950 | locally 951 | mothers 952 | iceland 953 | candles 954 | sailing 955 | morocco 956 | refused 957 | ecology 958 | verizon 959 | silicon 960 | compete 961 | beatles 962 | thomson 963 | seating 964 | exports 965 | heather 966 | warrant 967 | solaris 968 | royalty 969 | somehow 970 | laundry 971 | solomon 972 | placing 973 | filling 974 | imposed 975 | silence 976 | focuses 977 | trainer 978 | volumes 979 | bizrate 980 | implied 981 | packing 982 | statute 983 | satisfy 984 | shelter 985 | bahamas 986 | mixture 987 | logging 988 | hampton 989 | borders 990 | nursery 991 | staying 992 | estonia 993 | veteran 994 | streams 995 | landing 996 | signing 997 | namibia 998 | prairie 999 | reunion 1000 | spirits -------------------------------------------------------------------------------- /code/probs/prob2/wordle/8.txt: -------------------------------------------------------------------------------- 1 | business 2 | services 3 | products 4 | software 5 | research 6 | comments 7 | national 8 | internet 9 | shipping 10 | reserved 11 | security 12 | american 13 | computer 14 | download 15 | pictures 16 | personal 17 | location 18 | children 19 | students 20 | shopping 21 | previous 22 | property 23 | customer 24 | december 25 | training 26 | advanced 27 | category 28 | register 29 | november 30 | features 31 | industry 32 | provided 33 | required 34 | articles 35 | feedback 36 | complete 37 | standard 38 | programs 39 | language 40 | password 41 | question 42 | building 43 | february 44 | analysis 45 | possible 46 | problems 47 | interest 48 | learning 49 | delivery 50 | original 51 | includes 52 | messages 53 | provides 54 | specific 55 | director 56 | planning 57 | database 58 | official 59 | district 60 | calendar 61 | resource 62 | document 63 | material 64 | together 65 | function 66 | economic 67 | projects 68 | included 69 | received 70 | archives 71 | magazine 72 | policies 73 | position 74 | listings 75 | wireless 76 | purchase 77 | response 78 | practice 79 | hardware 80 | designed 81 | discount 82 | remember 83 | increase 84 | european 85 | activity 86 | although 87 | contents 88 | regional 89 | supplies 90 | exchange 91 | continue 92 | benefits 93 | anything 94 | mortgage 95 | solution 96 | addition 97 | clothing 98 | homepage 99 | military 100 | decision 101 | division 102 | actually 103 | saturday 104 | starting 105 | thursday 106 | consumer 107 | contract 108 | releases 109 | virginia 110 | multiple 111 | featured 112 | friendly 113 | schedule 114 | everyone 115 | approach 116 | physical 117 | medicine 118 | evidence 119 | favorite 120 | recently 121 | probably 122 | networks 123 | transfer 124 | carolina 125 | hospital 126 | overview 127 | distance 128 | involved 129 | partners 130 | existing 131 | selected 132 | patients 133 | directly 134 | searches 135 | strategy 136 | teaching 137 | canadian 138 | positive 139 | football 140 | abstract 141 | contains 142 | republic 143 | vacation 144 | academic 145 | graphics 146 | expected 147 | mountain 148 | consider 149 | northern 150 | proposed 151 | reported 152 | politics 153 | modified 154 | released 155 | internal 156 | detailed 157 | japanese 158 | approved 159 | southern 160 | yourself 161 | pressure 162 | keywords 163 | purposes 164 | external 165 | teachers 166 | subjects 167 | capacity 168 | requires 169 | electric 170 | creative 171 | progress 172 | families 173 | accepted 174 | agencies 175 | michigan 176 | columbia 177 | critical 178 | employee 179 | packages 180 | colorado 181 | relevant 182 | illinois 183 | elements 184 | facility 185 | minister 186 | visitors 187 | coverage 188 | clinical 189 | sciences 190 | currency 191 | commerce 192 | accounts 193 | settings 194 | cultural 195 | holidays 196 | graduate 197 | thinking 198 | provider 199 | optional 200 | sections 201 | websites 202 | religion 203 | measures 204 | chemical 205 | exercise 206 | meetings 207 | congress 208 | username 209 | produced 210 | argument 211 | creating 212 | attorney 213 | auctions 214 | informed 215 | thoughts 216 | quantity 217 | platform 218 | machines 219 | recovery 220 | merchant 221 | vehicles 222 | campaign 223 | examples 224 | motorola 225 | intended 226 | election 227 | requests 228 | separate 229 | identify 230 | domestic 231 | extended 232 | sequence 233 | williams 234 | movement 235 | printing 236 | baseball 237 | approval 238 | contacts 239 | matching 240 | offering 241 | variable 242 | compared 243 | workshop 244 | lighting 245 | portable 246 | returned 247 | warranty 248 | assembly 249 | criminal 250 | powerful 251 | obtained 252 | supplied 253 | opinions 254 | maintain 255 | priority 256 | payments 257 | straight 258 | prepared 259 | criteria 260 | behavior 261 | changing 262 | festival 263 | whatever 264 | maryland 265 | eligible 266 | checkout 267 | handling 268 | scotland 269 | followed 270 | protocol 271 | designer 272 | marriage 273 | negative 274 | missouri 275 | ministry 276 | proposal 277 | birthday 278 | slightly 279 | lingerie 280 | profiles 281 | controls 282 | breaking 283 | combined 284 | ultimate 285 | reviewed 286 | forecast 287 | accuracy 288 | pharmacy 289 | creation 290 | chairman 291 | violence 292 | oklahoma 293 | speakers 294 | cleaning 295 | concerns 296 | officers 297 | referred 298 | supports 299 | presence 300 | majority 301 | strength 302 | daughter 303 | standing 304 | ordering 305 | bookmark 306 | specials 307 | improved 308 | exposure 309 | gambling 310 | outdoors 311 | printers 312 | kentucky 313 | interior 314 | relative 315 | identity 316 | victoria 317 | revision 318 | instance 319 | licensed 320 | recorded 321 | finished 322 | discover 323 | patterns 324 | stations 325 | greatest 326 | operator 327 | tracking 328 | accurate 329 | managing 330 | happened 331 | lesbians 332 | managers 333 | aircraft 334 | conflict 335 | versions 336 | employer 337 | describe 338 | citizens 339 | heritage 340 | audience 341 | assigned 342 | directed 343 | sporting 344 | affected 345 | expenses 346 | indicate 347 | anderson 348 | diseases 349 | thailand 350 | advisory 351 | template 352 | anywhere 353 | atlantic 354 | investor 355 | wildlife 356 | speaking 357 | sponsors 358 | checking 359 | guidance 360 | observed 361 | glossary 362 | channels 363 | ericsson 364 | appendix 365 | supplier 366 | arkansas 367 | notebook 368 | explorer 369 | historic 370 | attached 371 | disabled 372 | upcoming 373 | constant 374 | portland 375 | concepts 376 | relating 377 | alliance 378 | engineer 379 | becoming 380 | relation 381 | colleges 382 | brothers 383 | presents 384 | estimate 385 | bulletin 386 | epinions 387 | painting 388 | universe 389 | watching 390 | sterling 391 | sessions 392 | journals 393 | jennifer 394 | terminal 395 | nebraska 396 | properly 397 | hundreds 398 | tomorrow 399 | visiting 400 | downtown 401 | keyboard 402 | suitable 403 | millions 404 | findings 405 | clicking 406 | province 407 | catholic 408 | governor 409 | swimming 410 | pakistan 411 | reliable 412 | symptoms 413 | memorial 414 | fighting 415 | pregnant 416 | cellular 417 | normally 418 | diabetes 419 | flexible 420 | numerous 421 | superior 422 | spending 423 | magnetic 424 | registry 425 | employed 426 | displays 427 | allowing 428 | earnings 429 | delaware 430 | counties 431 | occurred 432 | concrete 433 | accident 434 | resident 435 | possibly 436 | flashing 437 | malaysia 438 | antiques 439 | parallel 440 | bathroom 441 | drinking 442 | reaction 443 | enhanced 444 | entitled 445 | generate 446 | monitors 447 | duration 448 | pursuant 449 | contrast 450 | adoption 451 | measured 452 | marshall 453 | thousand 454 | hamilton 455 | tutorial 456 | portugal 457 | lawrence 458 | valuable 459 | airlines 460 | aviation 461 | disaster 462 | commands 463 | achieved 464 | injuries 465 | nintendo 466 | appeared 467 | franklin 468 | exciting 469 | ringtone 470 | pleasure 471 | oriented 472 | desktops 473 | columbus 474 | producer 475 | semester 476 | strongly 477 | proteins 478 | familiar 479 | carrying 480 | editions 481 | vertical 482 | absolute 483 | consists 484 | soldiers 485 | guardian 486 | classics 487 | bringing 488 | evaluate 489 | tropical 490 | pipeline 491 | everyday 492 | ethernet 493 | handbook 494 | navigate 495 | somewhat 496 | receiver 497 | scottish 498 | richmond 499 | covering 500 | platinum 501 | judgment 502 | bedrooms 503 | modeling 504 | spectrum 505 | emphasis 506 | princess 507 | entering 508 | thompson 509 | memories 510 | adequate 511 | cartoons 512 | entirely 513 | replaced 514 | reducing 515 | shooting 516 | launched 517 | suggests 518 | operated 519 | overseas 520 | surprise 521 | shoppers 522 | supposed 523 | ordinary 524 | applying 525 | reporter 526 | champion 527 | sentence 528 | outcomes 529 | survival 530 | jonathan 531 | whenever 532 | lifetime 533 | athletic 534 | campbell 535 | traveler 536 | aluminum 537 | wishlist 538 | trailers 539 | syndrome 540 | expanded 541 | bulgaria 542 | believed 543 | spanking 544 | catering 545 | incident 546 | dynamics 547 | decrease 548 | revenues 549 | emerging 550 | churches 551 | reserves 552 | minority 553 | recorder 554 | seminars 555 | paradise 556 | compiled 557 | romantic 558 | revealed 559 | margaret 560 | portions 561 | equation 562 | reviewer 563 | involves 564 | earrings 565 | chapters 566 | literary 567 | choosing 568 | boundary 569 | believes 570 | deadline 571 | equipped 572 | broadway 573 | acquired 574 | entrance 575 | attempts 576 | answered 577 | disorder 578 | firewall 579 | animated 580 | judicial 581 | bachelor 582 | attitude 583 | montreal 584 | genetics 585 | attended 586 | mitchell 587 | embedded 588 | brochure 589 | petition 590 | shoulder 591 | diameter 592 | literacy 593 | moderate 594 | opposite 595 | dealtime 596 | mercedes 597 | tramadol 598 | receives 599 | veterans 600 | occasion 601 | sleeping 602 | moreover 603 | michelle 604 | dialogue 605 | declared 606 | handheld 607 | disposal 608 | florists 609 | switches 610 | blogging 611 | midnight 612 | commonly 613 | pleasant 614 | announce 615 | sampling 616 | inspired 617 | weddings 618 | suddenly 619 | netscape 620 | township 621 | rankings 622 | robinson 623 | remained 624 | entities 625 | roulette 626 | medicare 627 | explains 628 | feelings 629 | freeware 630 | donation 631 | targeted 632 | realized 633 | gamecube 634 | climbing 635 | somebody 636 | colombia 637 | archived 638 | courtesy 639 | detected 640 | bracelet 641 | juvenile 642 | acoustic 643 | cassette 644 | steering 645 | cemetery 646 | contests 647 | berkeley 648 | adjusted 649 | seasonal 650 | counters 651 | cultures 652 | coaching 653 | examined 654 | encoding 655 | cosmetic 656 | resulted 657 | portrait 658 | carriers 659 | mobility 660 | builders 661 | struggle 662 | crossing 663 | resolved 664 | branches 665 | holdings 666 | zimbabwe 667 | browsing 668 | bargains 669 | frequent 670 | ensuring 671 | hispanic 672 | diamonds 673 | untitled 674 | marriott 675 | starring 676 | referral 677 | distinct 678 | verified 679 | formerly 680 | situated 681 | strictly 682 | retailer 683 | vitamins 684 | brooklyn 685 | phillips 686 | interval 687 | expansys 688 | repeated 689 | filename 690 | florence 691 | analyses 692 | drawings 693 | scenario 694 | junction 695 | weekends 696 | produces 697 | kingston 698 | adapters 699 | adjacent 700 | reaching 701 | receptor 702 | surgical 703 | citation 704 | premises 705 | imperial 706 | benjamin 707 | studying 708 | upgrades 709 | offshore 710 | harrison 711 | emission 712 | apparent 713 | outreach 714 | mounting 715 | balanced 716 | explicit 717 | precious 718 | annually 719 | scanners 720 | delivers 721 | necklace 722 | arranged 723 | theaters 724 | advocacy 725 | threaded 726 | footwear 727 | licenses 728 | removing 729 | isolated 730 | assisted 731 | compound 732 | abortion 733 | wellness 734 | membrane 735 | previews 736 | exterior 737 | greeting 738 | botswana 739 | velocity 740 | composed 741 | baseline 742 | honolulu 743 | electron 744 | passport 745 | treasury 746 | occupied 747 | observer 748 | sunshine 749 | ceremony 750 | arrested 751 | homework 752 | assessed 753 | enabling 754 | stronger 755 | advances 756 | darkness 757 | stanford 758 | rejected 759 | gamespot 760 | railroad 761 | lectures 762 | cheapest 763 | travesti 764 | salvador 765 | tanzania 766 | preserve 767 | unsigned 768 | theories 769 | executed 770 | showcase 771 | integral 772 | synopsis 773 | composer 774 | accessed 775 | imported 776 | contrary 777 | focusing 778 | admitted 779 | equality 780 | stickers 781 | concerts 782 | cambodia 783 | updating 784 | readings 785 | confused 786 | compiler 787 | airports 788 | brunette 789 | gathered 790 | slovenia 791 | notified 792 | dramatic 793 | surfaces 794 | terrible 795 | reflects 796 | taxation 797 | treasure 798 | assuming 799 | monetary 800 | floating 801 | plymouth 802 | warnings 803 | stunning 804 | actively 805 | cookbook 806 | uploaded 807 | collapse 808 | americas 809 | unlikely 810 | beverage 811 | forestry 812 | barriers 813 | infected 814 | particle 815 | minerals 816 | humidity 817 | operates 818 | brisbane 819 | manitoba 820 | missions 821 | costumes 822 | nickname 823 | staffing 824 | playlist 825 | statutes 826 | enrolled 827 | publicly 828 | reseller 829 | suffered 830 | informal 831 | swingers 832 | mistakes 833 | defining 834 | counting 835 | medieval 836 | captured 837 | innocent 838 | scanning 839 | cordless 840 | patricia 841 | disagree 842 | episodes 843 | circular 844 | mainland 845 | interact 846 | auckland 847 | olympics 848 | trinidad 849 | geometry 850 | slovakia 851 | gorgeous 852 | barbados 853 | chrysler 854 | mcdonald 855 | plumbing 856 | brussels 857 | shanghai 858 | davidson 859 | organize 860 | triangle 861 | oriental 862 | hydrogen 863 | webshots 864 | advocate 865 | artistic 866 | detector 867 | colonial 868 | proceeds 869 | indirect 870 | browsers 871 | overcome 872 | brighton 873 | reminder 874 | searched 875 | insights 876 | sullivan 877 | exhibits 878 | bacteria 879 | moisture 880 | symantec 881 | launches 882 | latitude 883 | deposits 884 | mistress 885 | trustees 886 | reprints 887 | midlands 888 | analysts 889 | nicholas 890 | invasion 891 | spelling 892 | medicaid 893 | infrared 894 | quarters 895 | naturals 896 | fixtures 897 | bloggers 898 | flooring 899 | ethiopia 900 | athletes 901 | humanity 902 | scholars 903 | snapshot 904 | segments 905 | dominant 906 | minimize 907 | fraction 908 | adelaide 909 | emirates 910 | promised 911 | bookings 912 | fabulous 913 | maritime 914 | periodic 915 | overhead 916 | prospect 917 | shipment 918 | breeding 919 | envelope 920 | homeland 921 | excluded 922 | emotions 923 | incoming 924 | cleaners 925 | cashiers 926 | rotation 927 | premiere 928 | villages 929 | symphony 930 | rational 931 | fighters 932 | chambers 933 | fountain 934 | regarded 935 | egyptian 936 | outlined 937 | headline 938 | treating 939 | enormous 940 | honduras 941 | cabinets 942 | hartford 943 | wrapping 944 | timeline 945 | infinite 946 | civilian 947 | realtors 948 | wherever 949 | democrat 950 | retained 951 | logitech 952 | briefing 953 | highland 954 | hawaiian 955 | consoles 956 | cylinder 957 | surround 958 | finances 959 | enjoying 960 | italiano 961 | carnival 962 | promises 963 | combines 964 | bradford 965 | reynolds 966 | speeches 967 | catalogs 968 | savannah 969 | pointing 970 | metadata 971 | circuits 972 | handbags 973 | somerset 974 | incurred 975 | roommate 976 | failures 977 | theology 978 | edmonton 979 | retrieve 980 | worldcat 981 | titanium 982 | deutsche 983 | postings 984 | cornwall 985 | basement 986 | sandwich 987 | hearings 988 | textbook 989 | frontier 990 | stopping 991 | refugees 992 | peaceful 993 | doctrine 994 | trainers 995 | conclude 996 | advisors 997 | pavilion 998 | talented 999 | paraguay 1000 | boutique -------------------------------------------------------------------------------- /code/probs/prob2/wordle/wordle.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | // each of our text files contains 1000 words 8 | #define LISTSIZE 1000 9 | 10 | // values for colors and score (EXACT == right letter, right place; CLOSE == 11 | // right letter, wrong place; WRONG == wrong letter) 12 | #define EXACT 2 13 | #define CLOSE 1 14 | #define WRONG 0 15 | 16 | // ANSI color codes for boxed in letters 17 | #define GREEN "\e[38;2;255;255;255;1m\e[48;2;106;170;100;1m" 18 | #define YELLOW "\e[38;2;255;255;255;1m\e[48;2;201;180;88;1m" 19 | #define RED "\e[38;2;255;255;255;1m\e[48;2;220;20;60;1m" 20 | #define RESET "\e[0;39m" 21 | 22 | // user-defined function prototypes 23 | string get_guess(int wordsize); 24 | int check_word(string guess, int wordsize, int status[], string choice); 25 | void print_word(string guess, int wordsize, int status[]); 26 | 27 | int main(int argc, string argv[]) 28 | { 29 | // ensure proper usage 30 | // TODO #1 31 | if (argc != 2) 32 | { 33 | printf("Usage: ./wordle wordsize\n"); 34 | return 1; 35 | } 36 | 37 | int wordsize = 0; 38 | 39 | // ensure argv[1] is either 5, 6, 7, or 8 and store that value in wordsize 40 | // instead 41 | // TODO #2 42 | int k = atoi(argv[1]); 43 | if (k < 5 || k > 8) 44 | { 45 | printf("Error: wordsize must be either 5, 6, 7, or 8\n"); 46 | return 1; 47 | } 48 | wordsize = k; 49 | 50 | // open correct file, each file has exactly LISTSIZE words 51 | char wl_filename[6]; 52 | sprintf(wl_filename, "%i.txt", wordsize); 53 | FILE *wordlist = fopen(wl_filename, "r"); 54 | if (wordlist == NULL) 55 | { 56 | printf("Error opening file %s.\n", wl_filename); 57 | return 1; 58 | } 59 | 60 | // load word file into an array of size LISTSIZE 61 | char options[LISTSIZE][wordsize + 1]; 62 | 63 | for (int i = 0; i < LISTSIZE; i++) 64 | { 65 | fscanf(wordlist, "%s", options[i]); 66 | } 67 | 68 | // pseudorandomly select a word for this game 69 | srand(time(NULL)); 70 | string choice = options[rand() % LISTSIZE]; 71 | 72 | // allow one more guess than the length of the word 73 | int guesses = wordsize + 1; 74 | bool won = false; 75 | 76 | // print greeting, using ANSI color codes to demonstrate 77 | printf(GREEN "This is WORDLE50" RESET "\n"); 78 | printf("You have %i tries to guess the %i-letter word I'm thinking of\n", 79 | guesses, wordsize); 80 | 81 | // main game loop, one iteration for each guess 82 | for (int i = 0; i < guesses; i++) 83 | { 84 | // obtain user's guess 85 | string guess = get_guess(wordsize); 86 | 87 | // array to hold guess status, initially set to zero 88 | int status[wordsize]; 89 | 90 | // set all elements of status array initially to 0, aka WRONG 91 | // TODO #4 92 | for (int j = 0; j < wordsize; j++) 93 | { 94 | status[j] = WRONG; 95 | } 96 | 97 | // Calculate score for the guess 98 | int score = check_word(guess, wordsize, status, choice); 99 | 100 | printf("Guess %i: ", i + 1); 101 | 102 | // Print the guess 103 | print_word(guess, wordsize, status); 104 | 105 | // if they guessed it exactly right, set terminate loop 106 | if (score == EXACT * wordsize) 107 | { 108 | won = true; 109 | break; 110 | } 111 | } 112 | 113 | // Print the game's result 114 | // TODO #7 115 | if (won) 116 | { 117 | printf("You won!\n"); 118 | } else 119 | { 120 | printf("You lost.\n"); 121 | } 122 | 123 | // that's all folks! 124 | return 0; 125 | } 126 | 127 | string get_guess(int wordsize) 128 | { 129 | string guess = ""; 130 | 131 | // ensure users actually provide a guess that is the correct length 132 | // TODO #3 133 | while (strlen(guess) != wordsize) 134 | { 135 | guess = get_string("Input a %i-letter word: ", wordsize); 136 | } 137 | 138 | return guess; 139 | } 140 | 141 | int check_word(string guess, int wordsize, int status[], string choice) 142 | { 143 | int score = 0; 144 | 145 | // compare guess to choice and score points as appropriate, storing points 146 | // in status 147 | // TODO #5 148 | for (int i = 0; i < wordsize; i++) 149 | { 150 | if (guess[i] == choice[i]) 151 | { 152 | status[i] = EXACT; 153 | score += EXACT; 154 | continue; 155 | } 156 | 157 | for (int j = 0; j < wordsize; j++) 158 | { 159 | if (guess[i] == choice[j]) 160 | { 161 | status[i] = CLOSE; 162 | score += CLOSE; 163 | break; 164 | } 165 | } 166 | } 167 | 168 | // HINTS 169 | // iterate over each letter of the guess 170 | // iterate over each letter of the choice 171 | // compare the current guess letter to the current choice letter 172 | // if they're the same position in the word, score EXACT points (green) and 173 | // break so you don't compare that letter further if it's in the word, but 174 | // not the right spot, score CLOSE point (yellow) 175 | // keep track of the total score by adding each individual letter's score 176 | // from above 177 | 178 | return score; 179 | } 180 | 181 | void print_word(string guess, int wordsize, int status[]) 182 | { 183 | // print word character-for-character with correct color coding, then reset 184 | // terminal font to normal 185 | // TODO #6 186 | for (int i = 0; i < wordsize; i++) 187 | { 188 | if (status[i] == EXACT) 189 | { 190 | printf(GREEN "%c" RESET, guess[i]); 191 | } else if (status[i] == CLOSE) 192 | { 193 | printf(YELLOW "%c" RESET, guess[i]); 194 | } else 195 | { 196 | printf(RED "%c" RESET, guess[i]); 197 | } 198 | } 199 | 200 | printf("\n"); 201 | return; 202 | } 203 | -------------------------------------------------------------------------------- /code/probs/prob3/plurality/plurality.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | // Max number of candidates 6 | #define MAX 9 7 | 8 | // Candidates have name and vote count 9 | typedef struct { 10 | string name; 11 | int votes; 12 | } candidate; 13 | 14 | // Array of candidates 15 | candidate candidates[MAX]; 16 | 17 | // Number of candidates 18 | int candidate_count; 19 | 20 | // Function prototypes 21 | bool vote(string name); 22 | void print_winner(void); 23 | 24 | int main(int argc, string argv[]) 25 | { 26 | // Check for invalid usage 27 | if (argc < 2) 28 | { 29 | printf("Usage: plurality [candidate ...]\n"); 30 | return 1; 31 | } 32 | 33 | // Populate array of candidates 34 | candidate_count = argc - 1; 35 | if (candidate_count > MAX) 36 | { 37 | printf("Maximum number of candidates is %i\n", MAX); 38 | return 2; 39 | } 40 | for (int i = 0; i < candidate_count; i++) 41 | { 42 | candidates[i].name = argv[i + 1]; 43 | candidates[i].votes = 0; 44 | } 45 | 46 | int voter_count = get_int("Number of voters: "); 47 | 48 | // Loop over all voters 49 | for (int i = 0; i < voter_count; i++) 50 | { 51 | string name = get_string("Vote: "); 52 | 53 | // Check for invalid vote 54 | if (!vote(name)) 55 | { 56 | printf("Invalid vote.\n"); 57 | } 58 | } 59 | 60 | // Display winner of election 61 | print_winner(); 62 | } 63 | 64 | // Update vote totals given a new vote 65 | bool vote(string name) 66 | { 67 | for (int i = 0; i < candidate_count; i++) 68 | { 69 | string candidate = candidates[i].name; 70 | if (strcmp(name, candidate) == 0) 71 | { 72 | candidates[i].votes++; 73 | return true; 74 | } 75 | } 76 | return false; 77 | } 78 | 79 | // Print the winner (or winners) of the election 80 | void print_winner(void) 81 | { 82 | int max_votes = 0; 83 | for (int i = 0; i < candidate_count; i++) 84 | { 85 | int votes = candidates[i].votes; 86 | if (votes > max_votes) 87 | { 88 | max_votes = votes; 89 | } 90 | } 91 | for (int i = 0; i < candidate_count; i++) 92 | { 93 | int votes = candidates[i].votes; 94 | if (votes == max_votes) 95 | { 96 | printf("%s\n", candidates[i].name); 97 | } 98 | } 99 | return; 100 | } 101 | -------------------------------------------------------------------------------- /code/probs/prob3/runoff/runoff.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | // Max voters and candidates 6 | #define MAX_VOTERS 100 7 | #define MAX_CANDIDATES 9 8 | 9 | // preferences[i][j] is jth preference for voter i 10 | int preferences[MAX_VOTERS][MAX_CANDIDATES]; 11 | 12 | // Candidates have name, vote count, eliminated status 13 | typedef struct { 14 | string name; 15 | int votes; 16 | bool eliminated; 17 | } candidate; 18 | 19 | // Array of candidates 20 | candidate candidates[MAX_CANDIDATES]; 21 | 22 | // Numbers of voters and candidates 23 | int voter_count; 24 | int candidate_count; 25 | 26 | // Function prototypes 27 | bool vote(int voter, int rank, string name); 28 | void tabulate(void); 29 | bool print_winner(void); 30 | int find_min(void); 31 | bool is_tie(int min); 32 | void eliminate(int min); 33 | 34 | int main(int argc, string argv[]) 35 | { 36 | // Check for invalid usage 37 | if (argc < 2) 38 | { 39 | printf("Usage: runoff [candidate ...]\n"); 40 | return 1; 41 | } 42 | 43 | // Populate array of candidates 44 | candidate_count = argc - 1; 45 | if (candidate_count > MAX_CANDIDATES) 46 | { 47 | printf("Maximum number of candidates is %i\n", MAX_CANDIDATES); 48 | return 2; 49 | } 50 | for (int i = 0; i < candidate_count; i++) 51 | { 52 | candidates[i].name = argv[i + 1]; 53 | candidates[i].votes = 0; 54 | candidates[i].eliminated = false; 55 | } 56 | 57 | voter_count = get_int("Number of voters: "); 58 | if (voter_count > MAX_VOTERS) 59 | { 60 | printf("Maximum number of voters is %i\n", MAX_VOTERS); 61 | return 3; 62 | } 63 | 64 | // Keep querying for votes 65 | for (int i = 0; i < voter_count; i++) 66 | { 67 | 68 | // Query for each rank 69 | for (int j = 0; j < candidate_count; j++) 70 | { 71 | string name = get_string("Rank %i: ", j + 1); 72 | 73 | // Record vote, unless it's invalid 74 | if (!vote(i, j, name)) 75 | { 76 | printf("Invalid vote.\n"); 77 | return 4; 78 | } 79 | } 80 | 81 | printf("\n"); 82 | } 83 | 84 | // Keep holding runoffs until winner exists 85 | while (true) 86 | { 87 | // Calculate votes given remaining candidates 88 | tabulate(); 89 | 90 | // Check if election has been won 91 | bool won = print_winner(); 92 | if (won) 93 | { 94 | break; 95 | } 96 | 97 | // Eliminate last-place candidates 98 | int min = find_min(); 99 | bool tie = is_tie(min); 100 | 101 | // If tie, everyone wins 102 | if (tie) 103 | { 104 | for (int i = 0; i < candidate_count; i++) 105 | { 106 | if (!candidates[i].eliminated) 107 | { 108 | printf("%s\n", candidates[i].name); 109 | } 110 | } 111 | break; 112 | } 113 | 114 | // Eliminate anyone with minimum number of votes 115 | eliminate(min); 116 | 117 | // Reset vote counts back to zero 118 | for (int i = 0; i < candidate_count; i++) 119 | { 120 | candidates[i].votes = 0; 121 | } 122 | } 123 | return 0; 124 | } 125 | 126 | // Record preference if vote is valid 127 | bool vote(int voter, int rank, string name) 128 | { 129 | for (int i = 0; i < candidate_count; i++) 130 | { 131 | string candidate = candidates[i].name; 132 | if (strcmp(name, candidate) == 0) 133 | { 134 | preferences[voter][rank] = i; 135 | return true; 136 | } 137 | } 138 | return false; 139 | } 140 | 141 | // Tabulate votes for non-eliminated candidates 142 | void tabulate(void) 143 | { 144 | for (int i = 0; i < voter_count; i++) 145 | { 146 | for (int j = 0; j < candidate_count; j++) 147 | { 148 | int index = preferences[i][j]; 149 | if (!candidates[index].eliminated) 150 | { 151 | candidates[index].votes++; 152 | break; 153 | } 154 | } 155 | } 156 | return; 157 | } 158 | 159 | // Print the winner of the election, if there is one 160 | bool print_winner(void) 161 | { 162 | for (int i = 0; i < candidate_count; i++) 163 | { 164 | int votes = candidates[i].votes; 165 | if (votes > voter_count / 2) 166 | { 167 | printf("%s\n", candidates[i].name); 168 | return true; 169 | } 170 | } 171 | return false; 172 | } 173 | 174 | // Return the minimum number of votes any remaining candidate has 175 | int find_min(void) 176 | { 177 | int min = voter_count; 178 | for (int i = 0; i < candidate_count; i++) 179 | { 180 | if (!candidates[i].eliminated && candidates[i].votes < min) 181 | { 182 | min = candidates[i].votes; 183 | } 184 | } 185 | return min; 186 | } 187 | 188 | // Return true if the election is tied between all candidates, false otherwise 189 | bool is_tie(int min) 190 | { 191 | for (int i = 0; i < candidate_count; i++) 192 | { 193 | if (!candidates[i].eliminated && candidates[i].votes != min) 194 | { 195 | return false; 196 | } 197 | } 198 | return true; 199 | } 200 | 201 | // Eliminate the candidate (or candidates) in last place 202 | void eliminate(int min) 203 | { 204 | for (int i = 0; i < candidate_count; i++) 205 | { 206 | if (candidates[i].votes == min) 207 | { 208 | candidates[i].eliminated = true; 209 | } 210 | } 211 | return; 212 | } 213 | -------------------------------------------------------------------------------- /code/probs/prob3/sort/answers.txt: -------------------------------------------------------------------------------- 1 | sort1 uses: Bubble Sort 2 | 3 | How do you know? 4 | 5 | sort2 uses: Merge Sort 6 | 7 | How do you know? 8 | 9 | sort3 uses: Selection Sort 10 | 11 | How do you know? 12 | -------------------------------------------------------------------------------- /code/probs/prob3/sort/random5000.txt: -------------------------------------------------------------------------------- 1 | 1864 2 | 2795 3 | 3581 4 | 4130 5 | 1090 6 | 701 7 | 3702 8 | 2539 9 | 2202 10 | 905 11 | 3 12 | 1698 13 | 1306 14 | 1237 15 | 4098 16 | 3342 17 | 2909 18 | 4257 19 | 544 20 | 1469 21 | 2811 22 | 1191 23 | 3637 24 | 4464 25 | 1824 26 | 3353 27 | 4762 28 | 3444 29 | 2816 30 | 2161 31 | 2421 32 | 1310 33 | 4076 34 | 4840 35 | 447 36 | 4072 37 | 2496 38 | 2768 39 | 1669 40 | 1471 41 | 316 42 | 4354 43 | 2640 44 | 2666 45 | 1235 46 | 698 47 | 972 48 | 2856 49 | 155 50 | 4394 51 | 3524 52 | 1308 53 | 329 54 | 4615 55 | 790 56 | 1857 57 | 1789 58 | 2018 59 | 3997 60 | 2677 61 | 1002 62 | 2099 63 | 1872 64 | 601 65 | 4860 66 | 296 67 | 2974 68 | 1395 69 | 1901 70 | 3450 71 | 3263 72 | 813 73 | 3601 74 | 1052 75 | 2791 76 | 1809 77 | 2405 78 | 1950 79 | 919 80 | 297 81 | 402 82 | 1062 83 | 3231 84 | 3755 85 | 275 86 | 1190 87 | 3542 88 | 4390 89 | 4241 90 | 900 91 | 60 92 | 1681 93 | 2367 94 | 3005 95 | 3584 96 | 3159 97 | 2035 98 | 1848 99 | 2362 100 | 4007 101 | 3227 102 | 777 103 | 1378 104 | 2613 105 | 1077 106 | 2645 107 | 1482 108 | 1502 109 | 1401 110 | 4342 111 | 2601 112 | 2327 113 | 3596 114 | 135 115 | 4913 116 | 473 117 | 3089 118 | 2338 119 | 3142 120 | 3284 121 | 3122 122 | 3697 123 | 4162 124 | 2001 125 | 842 126 | 4381 127 | 2111 128 | 1435 129 | 237 130 | 140 131 | 4728 132 | 2801 133 | 2240 134 | 4317 135 | 2280 136 | 4438 137 | 586 138 | 1955 139 | 1716 140 | 4451 141 | 3128 142 | 968 143 | 3910 144 | 4686 145 | 111 146 | 929 147 | 4089 148 | 3703 149 | 1842 150 | 1792 151 | 2577 152 | 2819 153 | 2118 154 | 561 155 | 2849 156 | 1597 157 | 2707 158 | 2071 159 | 4708 160 | 371 161 | 1459 162 | 4515 163 | 2758 164 | 2296 165 | 4237 166 | 2502 167 | 272 168 | 1009 169 | 1253 170 | 786 171 | 536 172 | 2230 173 | 2378 174 | 1763 175 | 3075 176 | 2029 177 | 188 178 | 4522 179 | 2885 180 | 3957 181 | 2702 182 | 4357 183 | 4017 184 | 4005 185 | 1167 186 | 4439 187 | 1475 188 | 1175 189 | 1798 190 | 1775 191 | 243 192 | 3494 193 | 2659 194 | 1454 195 | 4032 196 | 4486 197 | 4548 198 | 4754 199 | 804 200 | 3585 201 | 3178 202 | 1548 203 | 3869 204 | 3162 205 | 3006 206 | 1212 207 | 4943 208 | 1425 209 | 3166 210 | 1527 211 | 1720 212 | 2685 213 | 1949 214 | 4425 215 | 56 216 | 4599 217 | 2227 218 | 957 219 | 4524 220 | 774 221 | 1162 222 | 1039 223 | 2432 224 | 4514 225 | 39 226 | 4255 227 | 1319 228 | 4517 229 | 4071 230 | 3366 231 | 4198 232 | 3506 233 | 3359 234 | 3928 235 | 1981 236 | 1880 237 | 3331 238 | 689 239 | 671 240 | 4707 241 | 2633 242 | 936 243 | 2152 244 | 2686 245 | 4541 246 | 773 247 | 3666 248 | 4344 249 | 2046 250 | 4091 251 | 1145 252 | 2956 253 | 128 254 | 4360 255 | 3962 256 | 4626 257 | 2066 258 | 1372 259 | 719 260 | 2915 261 | 552 262 | 1544 263 | 3829 264 | 2638 265 | 727 266 | 1339 267 | 1017 268 | 1709 269 | 1293 270 | 2661 271 | 160 272 | 185 273 | 2162 274 | 4738 275 | 1302 276 | 558 277 | 4409 278 | 2083 279 | 611 280 | 134 281 | 45 282 | 3536 283 | 2291 284 | 616 285 | 2016 286 | 4700 287 | 4559 288 | 589 289 | 1007 290 | 725 291 | 3650 292 | 4088 293 | 1614 294 | 3718 295 | 2357 296 | 2097 297 | 2708 298 | 2890 299 | 1047 300 | 913 301 | 3794 302 | 1108 303 | 2637 304 | 3129 305 | 2745 306 | 762 307 | 1273 308 | 113 309 | 22 310 | 4468 311 | 4183 312 | 664 313 | 1150 314 | 2547 315 | 2596 316 | 2413 317 | 960 318 | 71 319 | 1367 320 | 639 321 | 2305 322 | 3832 323 | 3413 324 | 1188 325 | 2241 326 | 1736 327 | 3210 328 | 4897 329 | 1209 330 | 489 331 | 4848 332 | 3709 333 | 3685 334 | 4194 335 | 1557 336 | 3015 337 | 3770 338 | 133 339 | 631 340 | 1021 341 | 3784 342 | 1947 343 | 1856 344 | 1601 345 | 844 346 | 2875 347 | 1223 348 | 3326 349 | 1018 350 | 349 351 | 610 352 | 2304 353 | 2171 354 | 521 355 | 2936 356 | 4748 357 | 4302 358 | 70 359 | 2286 360 | 2581 361 | 4016 362 | 200 363 | 2881 364 | 3431 365 | 4998 366 | 2802 367 | 2165 368 | 1536 369 | 1623 370 | 3975 371 | 1562 372 | 4751 373 | 1506 374 | 340 375 | 1656 376 | 4462 377 | 599 378 | 4207 379 | 3502 380 | 1031 381 | 1932 382 | 15 383 | 2379 384 | 1485 385 | 3726 386 | 2444 387 | 3887 388 | 2364 389 | 6 390 | 4333 391 | 1846 392 | 3992 393 | 4944 394 | 219 395 | 1174 396 | 520 397 | 3865 398 | 4953 399 | 1187 400 | 4697 401 | 1881 402 | 4587 403 | 2660 404 | 4983 405 | 643 406 | 247 407 | 3750 408 | 2058 409 | 244 410 | 1540 411 | 4368 412 | 991 413 | 3880 414 | 2265 415 | 2882 416 | 4760 417 | 290 418 | 4713 419 | 1359 420 | 3387 421 | 4228 422 | 722 423 | 1534 424 | 4020 425 | 1075 426 | 4844 427 | 4173 428 | 3101 429 | 3669 430 | 1287 431 | 4852 432 | 3535 433 | 4266 434 | 4380 435 | 47 436 | 4484 437 | 3248 438 | 2554 439 | 1168 440 | 3894 441 | 923 442 | 319 443 | 1184 444 | 3700 445 | 4989 446 | 27 447 | 2520 448 | 1028 449 | 4413 450 | 499 451 | 1027 452 | 4531 453 | 545 454 | 4568 455 | 1369 456 | 4694 457 | 4606 458 | 2144 459 | 2855 460 | 4467 461 | 3986 462 | 797 463 | 3377 464 | 733 465 | 3100 466 | 2248 467 | 3264 468 | 3205 469 | 587 470 | 978 471 | 3819 472 | 3641 473 | 3909 474 | 3720 475 | 2402 476 | 4242 477 | 369 478 | 718 479 | 3862 480 | 3893 481 | 4060 482 | 3149 483 | 4148 484 | 37 485 | 1358 486 | 4066 487 | 2764 488 | 3769 489 | 102 490 | 3177 491 | 2775 492 | 3969 493 | 2840 494 | 512 495 | 930 496 | 4794 497 | 2450 498 | 4487 499 | 1436 500 | 2812 501 | 2311 502 | 3956 503 | 1196 504 | 3272 505 | 3948 506 | 1731 507 | 4733 508 | 1719 509 | 3758 510 | 2526 511 | 4006 512 | 4649 513 | 1408 514 | 1321 515 | 4855 516 | 4495 517 | 3799 518 | 789 519 | 3492 520 | 839 521 | 445 522 | 154 523 | 1316 524 | 3461 525 | 3482 526 | 4843 527 | 3474 528 | 4752 529 | 1852 530 | 1451 531 | 4650 532 | 3859 533 | 2528 534 | 1796 535 | 1853 536 | 4663 537 | 593 538 | 696 539 | 3636 540 | 3056 541 | 2106 542 | 227 543 | 3988 544 | 948 545 | 203 546 | 3648 547 | 4475 548 | 1404 549 | 2077 550 | 2440 551 | 1863 552 | 3787 553 | 1046 554 | 4329 555 | 1252 556 | 510 557 | 4318 558 | 3240 559 | 410 560 | 426 561 | 252 562 | 2127 563 | 1624 564 | 3010 565 | 2258 566 | 24 567 | 2628 568 | 2354 569 | 2569 570 | 3955 571 | 2226 572 | 2712 573 | 4247 574 | 4992 575 | 1243 576 | 2617 577 | 3681 578 | 494 579 | 2426 580 | 1882 581 | 4408 582 | 532 583 | 3555 584 | 2149 585 | 3016 586 | 4950 587 | 4525 588 | 4780 589 | 1100 590 | 1966 591 | 309 592 | 4340 593 | 827 594 | 2669 595 | 4610 596 | 3610 597 | 2755 598 | 2540 599 | 3937 600 | 3238 601 | 1605 602 | 3964 603 | 686 604 | 1740 605 | 4658 606 | 1256 607 | 4423 608 | 3597 609 | 3138 610 | 1754 611 | 4233 612 | 4250 613 | 646 614 | 2334 615 | 2874 616 | 1231 617 | 2714 618 | 2565 619 | 1967 620 | 988 621 | 2487 622 | 4452 623 | 4314 624 | 109 625 | 2965 626 | 57 627 | 787 628 | 845 629 | 2031 630 | 1486 631 | 2050 632 | 811 633 | 2211 634 | 169 635 | 4574 636 | 2817 637 | 4238 638 | 4549 639 | 246 640 | 117 641 | 3723 642 | 3021 643 | 3495 644 | 784 645 | 2349 646 | 566 647 | 2477 648 | 4187 649 | 2183 650 | 144 651 | 4014 652 | 4471 653 | 1660 654 | 1591 655 | 2452 656 | 1356 657 | 942 658 | 4458 659 | 3740 660 | 181 661 | 4430 662 | 2770 663 | 2665 664 | 1670 665 | 4121 666 | 2765 667 | 2690 668 | 4046 669 | 1272 670 | 2004 671 | 4120 672 | 3566 673 | 1516 674 | 1628 675 | 3308 676 | 1504 677 | 176 678 | 4151 679 | 1537 680 | 3521 681 | 1989 682 | 2726 683 | 4455 684 | 3609 685 | 3313 686 | 1083 687 | 4324 688 | 2948 689 | 1868 690 | 999 691 | 3389 692 | 1180 693 | 4364 694 | 614 695 | 866 696 | 3831 697 | 3334 698 | 191 699 | 3523 700 | 293 701 | 2761 702 | 282 703 | 1916 704 | 470 705 | 1697 706 | 3344 707 | 370 708 | 3452 709 | 3855 710 | 350 711 | 3645 712 | 1025 713 | 3020 714 | 2214 715 | 230 716 | 4759 717 | 1807 718 | 672 719 | 4598 720 | 1580 721 | 4564 722 | 4185 723 | 1945 724 | 1799 725 | 3810 726 | 4300 727 | 1003 728 | 3148 729 | 3982 730 | 3379 731 | 1821 732 | 2986 733 | 4939 734 | 1930 735 | 4372 736 | 3084 737 | 4206 738 | 794 739 | 2558 740 | 3866 741 | 339 742 | 2658 743 | 3429 744 | 2303 745 | 4286 746 | 3812 747 | 3522 748 | 649 749 | 3613 750 | 4909 751 | 1722 752 | 3085 753 | 3965 754 | 2271 755 | 2941 756 | 4205 757 | 2095 758 | 49 759 | 4437 760 | 4004 761 | 4795 762 | 3591 763 | 3409 764 | 3746 765 | 4827 766 | 4363 767 | 235 768 | 2960 769 | 3518 770 | 2672 771 | 2238 772 | 751 773 | 58 774 | 1550 775 | 2466 776 | 1773 777 | 805 778 | 238 779 | 287 780 | 116 781 | 2386 782 | 490 783 | 3181 784 | 3253 785 | 4804 786 | 384 787 | 3147 788 | 583 789 | 1282 790 | 1065 791 | 3428 792 | 4508 793 | 1309 794 | 2873 795 | 2767 796 | 4588 797 | 3442 798 | 947 799 | 2365 800 | 726 801 | 3292 802 | 2938 803 | 659 804 | 661 805 | 3877 806 | 4080 807 | 2821 808 | 831 809 | 463 810 | 2570 811 | 3311 812 | 2914 813 | 3734 814 | 4619 815 | 2593 816 | 4303 817 | 673 818 | 3245 819 | 4442 820 | 437 821 | 3399 822 | 1414 823 | 4428 824 | 3530 825 | 955 826 | 2904 827 | 632 828 | 2458 829 | 277 830 | 939 831 | 1986 832 | 439 833 | 836 834 | 721 835 | 622 836 | 4651 837 | 4633 838 | 459 839 | 2215 840 | 387 841 | 3458 842 | 2390 843 | 2049 844 | 4201 845 | 4043 846 | 1854 847 | 2893 848 | 152 849 | 3035 850 | 1345 851 | 4311 852 | 2130 853 | 4406 854 | 4138 855 | 2307 856 | 720 857 | 3552 858 | 3218 859 | 980 860 | 1382 861 | 228 862 | 4876 863 | 4814 864 | 3028 865 | 2096 866 | 2679 867 | 651 868 | 1837 869 | 1251 870 | 4054 871 | 367 872 | 1618 873 | 1015 874 | 4925 875 | 276 876 | 4398 877 | 344 878 | 3067 879 | 625 880 | 3618 881 | 4313 882 | 2935 883 | 2355 884 | 1909 885 | 1674 886 | 2252 887 | 1460 888 | 1707 889 | 4618 890 | 3616 891 | 588 892 | 4348 893 | 3305 894 | 737 895 | 431 896 | 3096 897 | 970 898 | 2532 899 | 1131 900 | 3112 901 | 4123 902 | 3151 903 | 38 904 | 2120 905 | 4875 906 | 3756 907 | 1011 908 | 2038 909 | 1730 910 | 3671 911 | 568 912 | 2664 913 | 354 914 | 537 915 | 2192 916 | 4015 917 | 2879 918 | 2576 919 | 427 920 | 3989 921 | 865 922 | 2933 923 | 2524 924 | 541 925 | 4591 926 | 4059 927 | 688 928 | 1263 929 | 901 930 | 4181 931 | 4424 932 | 2482 933 | 747 934 | 1838 935 | 2784 936 | 1245 937 | 547 938 | 1888 939 | 2472 940 | 2902 941 | 2872 942 | 356 943 | 148 944 | 556 945 | 3268 946 | 2620 947 | 2671 948 | 896 949 | 4246 950 | 707 951 | 284 952 | 1177 953 | 2261 954 | 683 955 | 77 956 | 2356 957 | 530 958 | 1387 959 | 594 960 | 2366 961 | 1889 962 | 1001 963 | 1582 964 | 513 965 | 2730 966 | 4189 967 | 3544 968 | 2179 969 | 3207 970 | 1931 971 | 3576 972 | 985 973 | 13 974 | 4647 975 | 821 976 | 2351 977 | 5 978 | 1734 979 | 26 980 | 4137 981 | 2652 982 | 4248 983 | 2740 984 | 3401 985 | 394 986 | 893 987 | 3103 988 | 2361 989 | 3480 990 | 1686 991 | 4889 992 | 2521 993 | 1893 994 | 1826 995 | 4717 996 | 791 997 | 1895 998 | 3297 999 | 1176 1000 | 3918 1001 | 2749 1002 | 2249 1003 | 4888 1004 | 912 1005 | 2869 1006 | 2738 1007 | 466 1008 | 1479 1009 | 3646 1010 | 2518 1011 | 3940 1012 | 397 1013 | 3347 1014 | 2515 1015 | 1324 1016 | 4461 1017 | 4102 1018 | 78 1019 | 2934 1020 | 3048 1021 | 1323 1022 | 3569 1023 | 793 1024 | 780 1025 | 1890 1026 | 2945 1027 | 2053 1028 | 2970 1029 | 954 1030 | 4506 1031 | 1267 1032 | 167 1033 | 4771 1034 | 1088 1035 | 1532 1036 | 4512 1037 | 91 1038 | 2839 1039 | 2884 1040 | 2709 1041 | 1522 1042 | 783 1043 | 2393 1044 | 3269 1045 | 4229 1046 | 2969 1047 | 502 1048 | 2584 1049 | 1313 1050 | 997 1051 | 17 1052 | 3130 1053 | 848 1054 | 2073 1055 | 1171 1056 | 1086 1057 | 2467 1058 | 317 1059 | 1445 1060 | 752 1061 | 1334 1062 | 1164 1063 | 4336 1064 | 755 1065 | 2590 1066 | 1759 1067 | 2585 1068 | 1122 1069 | 3153 1070 | 2471 1071 | 775 1072 | 4431 1073 | 1677 1074 | 2736 1075 | 4772 1076 | 1493 1077 | 3143 1078 | 2308 1079 | 911 1080 | 4655 1081 | 886 1082 | 2723 1083 | 4272 1084 | 3489 1085 | 3270 1086 | 4830 1087 | 3304 1088 | 1128 1089 | 380 1090 | 3543 1091 | 4362 1092 | 2474 1093 | 1134 1094 | 1290 1095 | 3394 1096 | 1497 1097 | 4294 1098 | 1832 1099 | 4746 1100 | 1178 1101 | 1589 1102 | 3626 1103 | 1675 1104 | 4373 1105 | 1010 1106 | 1116 1107 | 3446 1108 | 1963 1109 | 1067 1110 | 4597 1111 | 3798 1112 | 4182 1113 | 1125 1114 | 2580 1115 | 1815 1116 | 88 1117 | 3805 1118 | 35 1119 | 2594 1120 | 3345 1121 | 1203 1122 | 2267 1123 | 982 1124 | 2243 1125 | 2298 1126 | 4970 1127 | 2600 1128 | 341 1129 | 4620 1130 | 3019 1131 | 3418 1132 | 460 1133 | 2844 1134 | 1877 1135 | 4917 1136 | 2511 1137 | 3897 1138 | 990 1139 | 2343 1140 | 2906 1141 | 641 1142 | 4894 1143 | 1558 1144 | 1487 1145 | 2566 1146 | 157 1147 | 2794 1148 | 759 1149 | 2034 1150 | 3911 1151 | 2461 1152 | 213 1153 | 1750 1154 | 1149 1155 | 454 1156 | 3017 1157 | 864 1158 | 3190 1159 | 4781 1160 | 1070 1161 | 1782 1162 | 2553 1163 | 994 1164 | 108 1165 | 3436 1166 | 3841 1167 | 1030 1168 | 1885 1169 | 976 1170 | 138 1171 | 4745 1172 | 4388 1173 | 627 1174 | 629 1175 | 723 1176 | 3376 1177 | 2332 1178 | 2534 1179 | 1505 1180 | 1114 1181 | 2495 1182 | 1264 1183 | 1595 1184 | 3288 1185 | 1201 1186 | 2178 1187 | 4645 1188 | 2239 1189 | 4931 1190 | 3902 1191 | 3187 1192 | 2786 1193 | 1642 1194 | 1061 1195 | 4638 1196 | 253 1197 | 1680 1198 | 847 1199 | 1294 1200 | 2861 1201 | 1329 1202 | 3337 1203 | 2552 1204 | 1609 1205 | 2475 1206 | 2626 1207 | 1218 1208 | 2041 1209 | 595 1210 | 3046 1211 | 2223 1212 | 3224 1213 | 716 1214 | 210 1215 | 2932 1216 | 2752 1217 | 1869 1218 | 3126 1219 | 3828 1220 | 332 1221 | 2555 1222 | 2589 1223 | 3762 1224 | 4859 1225 | 4366 1226 | 2123 1227 | 4929 1228 | 732 1229 | 4540 1230 | 846 1231 | 2497 1232 | 298 1233 | 1806 1234 | 3273 1235 | 500 1236 | 769 1237 | 2947 1238 | 2409 1239 | 295 1240 | 1969 1241 | 996 1242 | 3639 1243 | 44 1244 | 781 1245 | 4429 1246 | 1921 1247 | 4948 1248 | 2541 1249 | 2299 1250 | 2763 1251 | 3260 1252 | 3372 1253 | 3739 1254 | 4740 1255 | 4676 1256 | 2193 1257 | 518 1258 | 1501 1259 | 3289 1260 | 4715 1261 | 3498 1262 | 4500 1263 | 4841 1264 | 2207 1265 | 3426 1266 | 1812 1267 | 3282 1268 | 2773 1269 | 3813 1270 | 3262 1271 | 195 1272 | 365 1273 | 3926 1274 | 2852 1275 | 4367 1276 | 1554 1277 | 4023 1278 | 3958 1279 | 97 1280 | 3604 1281 | 4604 1282 | 1733 1283 | 2384 1284 | 508 1285 | 3141 1286 | 1935 1287 | 3364 1288 | 1348 1289 | 3573 1290 | 1607 1291 | 3278 1292 | 3464 1293 | 981 1294 | 4315 1295 | 468 1296 | 3406 1297 | 166 1298 | 3068 1299 | 4454 1300 | 2302 1301 | 1281 1302 | 3500 1303 | 695 1304 | 311 1305 | 2470 1306 | 3634 1307 | 3167 1308 | 2695 1309 | 2005 1310 | 1703 1311 | 2131 1312 | 4747 1313 | 1604 1314 | 2333 1315 | 1148 1316 | 1588 1317 | 4029 1318 | 3108 1319 | 2862 1320 | 837 1321 | 3319 1322 | 2622 1323 | 3752 1324 | 3727 1325 | 2678 1326 | 4031 1327 | 2505 1328 | 2015 1329 | 4012 1330 | 2700 1331 | 3071 1332 | 1732 1333 | 4370 1334 | 3295 1335 | 320 1336 | 4395 1337 | 3660 1338 | 4819 1339 | 3191 1340 | 4502 1341 | 1494 1342 | 1213 1343 | 1886 1344 | 1328 1345 | 2156 1346 | 1977 1347 | 4184 1348 | 389 1349 | 4441 1350 | 3175 1351 | 2447 1352 | 2282 1353 | 3052 1354 | 898 1355 | 3367 1356 | 2833 1357 | 3417 1358 | 3836 1359 | 2469 1360 | 2480 1361 | 4064 1362 | 4635 1363 | 2705 1364 | 653 1365 | 4047 1366 | 1560 1367 | 867 1368 | 3425 1369 | 822 1370 | 1652 1371 | 1982 1372 | 2757 1373 | 876 1374 | 1119 1375 | 4469 1376 | 1568 1377 | 4164 1378 | 3715 1379 | 4417 1380 | 4125 1381 | 676 1382 | 199 1383 | 2971 1384 | 1420 1385 | 1667 1386 | 687 1387 | 962 1388 | 1029 1389 | 4616 1390 | 2694 1391 | 2284 1392 | 628 1393 | 2246 1394 | 4444 1395 | 2928 1396 | 2383 1397 | 2315 1398 | 4374 1399 | 289 1400 | 233 1401 | 4472 1402 | 2741 1403 | 4818 1404 | 1352 1405 | 1755 1406 | 1721 1407 | 1063 1408 | 4081 1409 | 3843 1410 | 4504 1411 | 4169 1412 | 2255 1413 | 796 1414 | 4350 1415 | 1972 1416 | 3453 1417 | 2277 1418 | 4835 1419 | 343 1420 | 207 1421 | 3146 1422 | 1514 1423 | 1468 1424 | 2208 1425 | 3588 1426 | 4964 1427 | 2292 1428 | 4326 1429 | 2353 1430 | 1938 1431 | 3532 1432 | 2079 1433 | 2573 1434 | 4493 1435 | 3801 1436 | 218 1437 | 2609 1438 | 406 1439 | 1051 1440 | 1905 1441 | 1490 1442 | 1074 1443 | 2412 1444 | 888 1445 | 4583 1446 | 4132 1447 | 4691 1448 | 4418 1449 | 1040 1450 | 879 1451 | 2847 1452 | 4085 1453 | 4821 1454 | 3827 1455 | 3515 1456 | 374 1457 | 2925 1458 | 87 1459 | 3705 1460 | 398 1461 | 1044 1462 | 1810 1463 | 505 1464 | 1418 1465 | 1776 1466 | 59 1467 | 4505 1468 | 4253 1469 | 1456 1470 | 2411 1471 | 150 1472 | 3069 1473 | 172 1474 | 4636 1475 | 1871 1476 | 602 1477 | 4957 1478 | 3223 1479 | 1136 1480 | 392 1481 | 3971 1482 | 4446 1483 | 3055 1484 | 3375 1485 | 2372 1486 | 945 1487 | 229 1488 | 425 1489 | 4251 1490 | 585 1491 | 4605 1492 | 2721 1493 | 3861 1494 | 222 1495 | 2281 1496 | 2876 1497 | 1610 1498 | 4501 1499 | 3876 1500 | 1214 1501 | 1035 1502 | 4369 1503 | 2698 1504 | 4146 1505 | 1521 1506 | 120 1507 | 2724 1508 | 4434 1509 | 2527 1510 | 3208 1511 | 1354 1512 | 1043 1513 | 4226 1514 | 3921 1515 | 4193 1516 | 4297 1517 | 2657 1518 | 4338 1519 | 516 1520 | 4033 1521 | 4045 1522 | 2732 1523 | 2950 1524 | 1538 1525 | 1695 1526 | 2289 1527 | 810 1528 | 1543 1529 | 4744 1530 | 2037 1531 | 2655 1532 | 1305 1533 | 618 1534 | 2086 1535 | 2341 1536 | 4267 1537 | 3587 1538 | 2888 1539 | 3247 1540 | 2209 1541 | 1508 1542 | 961 1543 | 4219 1544 | 1915 1545 | 4556 1546 | 3580 1547 | 2370 1548 | 2398 1549 | 1143 1550 | 4800 1551 | 4263 1552 | 4872 1553 | 4895 1554 | 3647 1555 | 2478 1556 | 3402 1557 | 3665 1558 | 62 1559 | 3537 1560 | 4432 1561 | 1710 1562 | 937 1563 | 1073 1564 | 3049 1565 | 4775 1566 | 2964 1567 | 1714 1568 | 1887 1569 | 922 1570 | 2112 1571 | 3694 1572 | 1942 1573 | 636 1574 | 3136 1575 | 4881 1576 | 3954 1577 | 2433 1578 | 940 1579 | 1385 1580 | 474 1581 | 208 1582 | 257 1583 | 3013 1584 | 3422 1585 | 2380 1586 | 4816 1587 | 3335 1588 | 2173 1589 | 36 1590 | 1976 1591 | 2536 1592 | 4528 1593 | 4044 1594 | 3570 1595 | 2067 1596 | 3155 1597 | 1008 1598 | 342 1599 | 1635 1600 | 4067 1601 | 3298 1602 | 2132 1603 | 3533 1604 | 4584 1605 | 4726 1606 | 2715 1607 | 1712 1608 | 776 1609 | 2056 1610 | 4457 1611 | 1228 1612 | 4866 1613 | 2275 1614 | 4535 1615 | 3235 1616 | 2586 1617 | 3999 1618 | 4705 1619 | 2442 1620 | 1551 1621 | 3960 1622 | 1159 1623 | 51 1624 | 3171 1625 | 1995 1626 | 1325 1627 | 1185 1628 | 1085 1629 | 3462 1630 | 3686 1631 | 849 1632 | 1205 1633 | 4494 1634 | 679 1635 | 2108 1636 | 815 1637 | 1870 1638 | 2519 1639 | 597 1640 | 163 1641 | 4778 1642 | 4139 1643 | 1076 1644 | 1907 1645 | 2460 1646 | 3930 1647 | 1135 1648 | 126 1649 | 2807 1650 | 806 1651 | 190 1652 | 605 1653 | 4933 1654 | 3000 1655 | 3510 1656 | 307 1657 | 4979 1658 | 465 1659 | 2999 1660 | 553 1661 | 1764 1662 | 3467 1663 | 1225 1664 | 3097 1665 | 3582 1666 | 3884 1667 | 3154 1668 | 2551 1669 | 2346 1670 | 4893 1671 | 2998 1672 | 4298 1673 | 1539 1674 | 3390 1675 | 4040 1676 | 4065 1677 | 3473 1678 | 2124 1679 | 1507 1680 | 4577 1681 | 3114 1682 | 482 1683 | 4603 1684 | 159 1685 | 840 1686 | 2820 1687 | 2808 1688 | 4553 1689 | 457 1690 | 3396 1691 | 4400 1692 | 549 1693 | 1249 1694 | 542 1695 | 693 1696 | 906 1697 | 1503 1698 | 4108 1699 | 4669 1700 | 1098 1701 | 3567 1702 | 2619 1703 | 1260 1704 | 1529 1705 | 1078 1706 | 2222 1707 | 2512 1708 | 1564 1709 | 4621 1710 | 3066 1711 | 2864 1712 | 2850 1713 | 782 1714 | 4984 1715 | 4420 1716 | 717 1717 | 4704 1718 | 4097 1719 | 4070 1720 | 2336 1721 | 2188 1722 | 4106 1723 | 430 1724 | 4277 1725 | 3845 1726 | 1 1727 | 4057 1728 | 4995 1729 | 4345 1730 | 2994 1731 | 12 1732 | 817 1733 | 3174 1734 | 2189 1735 | 197 1736 | 2225 1737 | 2737 1738 | 2662 1739 | 178 1740 | 2279 1741 | 4290 1742 | 1996 1743 | 2634 1744 | 3057 1745 | 617 1746 | 1438 1747 | 3357 1748 | 4239 1749 | 1662 1750 | 3438 1751 | 3561 1752 | 3611 1753 | 3684 1754 | 399 1755 | 1822 1756 | 4766 1757 | 1974 1758 | 66 1759 | 4736 1760 | 4221 1761 | 2434 1762 | 3202 1763 | 2348 1764 | 3633 1765 | 1455 1766 | 4561 1767 | 2981 1768 | 1923 1769 | 3294 1770 | 1708 1771 | 853 1772 | 2151 1773 | 3791 1774 | 1581 1775 | 816 1776 | 2245 1777 | 1346 1778 | 4035 1779 | 1411 1780 | 1879 1781 | 488 1782 | 1230 1783 | 330 1784 | 1787 1785 | 2562 1786 | 1181 1787 | 1379 1788 | 3325 1789 | 3044 1790 | 4986 1791 | 156 1792 | 2014 1793 | 1050 1794 | 209 1795 | 3682 1796 | 1644 1797 | 3822 1798 | 2445 1799 | 4234 1800 | 2093 1801 | 4269 1802 | 4220 1803 | 2170 1804 | 2803 1805 | 1728 1806 | 1918 1807 | 4055 1808 | 211 1809 | 4965 1810 | 189 1811 | 4786 1812 | 613 1813 | 862 1814 | 2285 1815 | 1575 1816 | 3577 1817 | 240 1818 | 1991 1819 | 1163 1820 | 4216 1821 | 3689 1822 | 2394 1823 | 4622 1824 | 3058 1825 | 92 1826 | 1723 1827 | 1318 1828 | 1613 1829 | 3194 1830 | 3737 1831 | 2060 1832 | 4838 1833 | 1646 1834 | 2217 1835 | 873 1836 | 4927 1837 | 3031 1838 | 506 1839 | 809 1840 | 19 1841 | 4264 1842 | 2513 1843 | 1332 1844 | 550 1845 | 2013 1846 | 4358 1847 | 2912 1848 | 3607 1849 | 2848 1850 | 1447 1851 | 3795 1852 | 446 1853 | 4215 1854 | 2722 1855 | 4114 1856 | 3336 1857 | 432 1858 | 4774 1859 | 1805 1860 | 2813 1861 | 1478 1862 | 223 1863 | 3839 1864 | 3211 1865 | 1289 1866 | 1207 1867 | 3905 1868 | 2272 1869 | 3574 1870 | 4171 1871 | 4954 1872 | 765 1873 | 656 1874 | 4166 1875 | 3707 1876 | 4115 1877 | 697 1878 | 3824 1879 | 3733 1880 | 2656 1881 | 322 1882 | 1780 1883 | 2616 1884 | 2860 1885 | 266 1886 | 1690 1887 | 2500 1888 | 2119 1889 | 4567 1890 | 2429 1891 | 987 1892 | 2276 1893 | 881 1894 | 2880 1895 | 3080 1896 | 3277 1897 | 265 1898 | 1788 1899 | 3226 1900 | 3088 1901 | 2727 1902 | 877 1903 | 4058 1904 | 4180 1905 | 1850 1906 | 4159 1907 | 941 1908 | 1495 1909 | 1173 1910 | 1417 1911 | 4902 1912 | 2422 1913 | 3977 1914 | 739 1915 | 65 1916 | 3042 1917 | 4973 1918 | 771 1919 | 894 1920 | 1702 1921 | 660 1922 | 1179 1923 | 3072 1924 | 2074 1925 | 3258 1926 | 4039 1927 | 3110 1928 | 2489 1929 | 2369 1930 | 2867 1931 | 1689 1932 | 4141 1933 | 2184 1934 | 3589 1935 | 2387 1936 | 1735 1937 | 2921 1938 | 224 1939 | 2377 1940 | 2048 1941 | 2420 1942 | 2400 1943 | 3079 1944 | 1113 1945 | 3290 1946 | 551 1947 | 3070 1948 | 1198 1949 | 2125 1950 | 1355 1951 | 2088 1952 | 4375 1953 | 255 1954 | 4411 1955 | 3082 1956 | 1651 1957 | 1786 1958 | 3169 1959 | 3912 1960 | 4657 1961 | 626 1962 | 4911 1963 | 4516 1964 | 4550 1965 | 1283 1966 | 2508 1967 | 3725 1968 | 647 1969 | 1997 1970 | 1019 1971 | 2256 1972 | 3592 1973 | 2501 1974 | 2809 1975 | 1301 1976 | 758 1977 | 3936 1978 | 3481 1979 | 1398 1980 | 744 1981 | 291 1982 | 4199 1983 | 1480 1984 | 3398 1985 | 4868 1986 | 421 1987 | 110 1988 | 1911 1989 | 76 1990 | 438 1991 | 917 1992 | 2468 1993 | 396 1994 | 4788 1995 | 477 1996 | 4321 1997 | 1555 1998 | 2166 1999 | 1370 2000 | 3881 2001 | 2323 2002 | 3950 2003 | 658 2004 | 3152 2005 | 1194 2006 | 3179 2007 | 2648 2008 | 3465 2009 | 1403 2010 | 2793 2011 | 254 2012 | 498 2013 | 409 2014 | 4105 2015 | 675 2016 | 267 2017 | 4489 2018 | 1769 2019 | 204 2020 | 4176 2021 | 4483 2022 | 4639 2023 | 2543 2024 | 1858 2025 | 4048 2026 | 1739 2027 | 3742 2028 | 785 2029 | 327 2030 | 4877 2031 | 2143 2032 | 1756 2033 | 1790 2034 | 1462 2035 | 1839 2036 | 4590 2037 | 818 2038 | 2294 2039 | 3435 2040 | 2251 2041 | 3053 2042 | 2529 2043 | 4817 2044 | 1384 2045 | 861 2046 | 1774 2047 | 3340 2048 | 2717 2049 | 3381 2050 | 1545 2051 | 3229 2052 | 2992 2053 | 3614 2054 | 52 2055 | 3692 2056 | 4037 2057 | 1288 2058 | 93 2059 | 2693 2060 | 3547 2061 | 2270 2062 | 3490 2063 | 2247 2064 | 3888 2065 | 2213 2066 | 645 2067 | 3116 2068 | 3623 2069 | 2733 2070 | 763 2071 | 1743 2072 | 734 2073 | 414 2074 | 2100 2075 | 1327 2076 | 975 2077 | 3916 2078 | 2044 2079 | 2582 2080 | 3078 2081 | 1005 2082 | 1602 2083 | 1859 2084 | 548 2085 | 4473 2086 | 3256 2087 | 4951 2088 | 4755 2089 | 2021 2090 | 4891 2091 | 4662 2092 | 3711 2093 | 1701 2094 | 469 2095 | 8 2096 | 3454 2097 | 3963 2098 | 596 2099 | 4521 2100 | 1342 2101 | 4916 2102 | 3837 2103 | 2457 2104 | 269 2105 | 2187 2106 | 3478 2107 | 3496 2108 | 4687 2109 | 4009 2110 | 3907 2111 | 1192 2112 | 180 2113 | 2325 2114 | 4405 2115 | 1706 2116 | 2826 2117 | 3414 2118 | 2250 2119 | 4871 2120 | 4945 2121 | 86 2122 | 4030 2123 | 1022 2124 | 1229 2125 | 3695 2126 | 4831 2127 | 2753 2128 | 3111 2129 | 4865 2130 | 4586 2131 | 1427 2132 | 3300 2133 | 3978 2134 | 1115 2135 | 4100 2136 | 654 2137 | 2696 2138 | 3339 2139 | 2232 2140 | 578 2141 | 248 2142 | 4480 2143 | 3363 2144 | 872 2145 | 3517 2146 | 404 2147 | 2045 2148 | 2221 2149 | 2776 2150 | 1586 2151 | 1845 2152 | 142 2153 | 390 2154 | 1092 2155 | 2516 2156 | 2319 2157 | 2236 2158 | 2218 2159 | 1330 2160 | 909 2161 | 3571 2162 | 3710 2163 | 3744 2164 | 4857 2165 | 2082 2166 | 2514 2167 | 4227 2168 | 4671 2169 | 3583 2170 | 1492 2171 | 2293 2172 | 3327 2173 | 4652 2174 | 4543 2175 | 546 2176 | 2720 2177 | 1715 2178 | 4386 2179 | 795 2180 | 4987 2181 | 4978 2182 | 2810 2183 | 3608 2184 | 729 2185 | 3062 2186 | 3655 2187 | 829 2188 | 2172 2189 | 1139 2190 | 2615 2191 | 1999 2192 | 608 2193 | 1483 2194 | 921 2195 | 4526 2196 | 4947 2197 | 4240 2198 | 3314 2199 | 770 2200 | 798 2201 | 1814 2202 | 2978 2203 | 383 2204 | 3160 2205 | 4196 2206 | 2748 2207 | 3886 2208 | 408 2209 | 1410 2210 | 4078 2211 | 3133 2212 | 1569 2213 | 1830 2214 | 503 2215 | 4144 2216 | 2134 2217 | 2416 2218 | 2437 2219 | 2832 2220 | 2448 2221 | 4764 2222 | 3397 2223 | 3867 2224 | 4773 2225 | 4117 2226 | 3658 2227 | 4555 2228 | 4870 2229 | 2345 2230 | 1779 2231 | 3557 2232 | 363 2233 | 1472 2234 | 1320 2235 | 2916 2236 | 1422 2237 | 956 2238 | 1064 2239 | 2887 2240 | 3252 2241 | 1533 2242 | 2024 2243 | 4306 2244 | 1559 2245 | 1611 2246 | 1952 2247 | 3745 2248 | 1959 2249 | 3011 2250 | 2691 2251 | 1069 2252 | 4825 2253 | 2212 2254 | 3949 2255 | 1867 2256 | 129 2257 | 4988 2258 | 1347 2259 | 1295 2260 | 515 2261 | 4099 2262 | 1784 2263 | 950 2264 | 828 2265 | 3757 2266 | 4284 2267 | 2157 2268 | 2138 2269 | 3285 2270 | 2462 2271 | 107 2272 | 4864 2273 | 3559 2274 | 2598 2275 | 584 2276 | 4093 2277 | 4152 2278 | 1016 2279 | 1526 2280 | 2920 2281 | 1914 2282 | 2993 2283 | 1443 2284 | 1518 2285 | 2507 2286 | 3849 2287 | 2975 2288 | 3316 2289 | 3622 2290 | 2078 2291 | 2605 2292 | 4082 2293 | 3979 2294 | 3472 2295 | 4991 2296 | 1572 2297 | 1202 2298 | 843 2299 | 2900 2300 | 3520 2301 | 899 2302 | 4690 2303 | 4698 2304 | 3047 2305 | 2859 2306 | 1254 2307 | 984 2308 | 3980 2309 | 1693 2310 | 4448 2311 | 3261 2312 | 1247 2313 | 4157 2314 | 3959 2315 | 4382 2316 | 1307 2317 | 4404 2318 | 4143 2319 | 1758 2320 | 3471 2321 | 2746 2322 | 2481 2323 | 72 2324 | 3754 2325 | 835 2326 | 807 2327 | 1120 2328 | 262 2329 | 20 2330 | 1777 2331 | 4028 2332 | 3276 2333 | 2337 2334 | 4592 2335 | 1998 2336 | 183 2337 | 3898 2338 | 871 2339 | 4243 2340 | 3621 2341 | 3185 2342 | 1956 2343 | 3564 2344 | 2136 2345 | 3459 2346 | 3730 2347 | 1498 2348 | 3676 2349 | 1377 2350 | 3369 2351 | 3271 2352 | 3527 2353 | 1510 2354 | 2991 2355 | 2561 2356 | 1488 2357 | 121 2358 | 3244 2359 | 3932 2360 | 3259 2361 | 4496 2362 | 452 2363 | 2219 2364 | 4214 2365 | 2564 2366 | 4069 2367 | 1054 2368 | 1042 2369 | 1094 2370 | 259 2371 | 1671 2372 | 3118 2373 | 1056 2374 | 2629 2375 | 3120 2376 | 4980 2377 | 892 2378 | 4919 2379 | 1833 2380 | 2987 2381 | 3721 2382 | 2089 2383 | 2892 2384 | 2790 2385 | 165 2386 | 493 2387 | 4575 2388 | 3140 2389 | 4837 2390 | 4403 2391 | 4456 2392 | 1834 2393 | 1747 2394 | 4482 2395 | 1934 2396 | 838 2397 | 1718 2398 | 3525 2399 | 3599 2400 | 3156 2401 | 4878 2402 | 3018 2403 | 132 2404 | 1012 2405 | 3761 2406 | 4716 2407 | 1741 2408 | 1390 2409 | 2687 2410 | 3445 2411 | 4497 2412 | 3808 2413 | 3150 2414 | 1836 2415 | 3407 2416 | 63 2417 | 533 2418 | 4735 2419 | 2966 2420 | 3196 2421 | 2312 2422 | 1679 2423 | 1216 2424 | 2310 2425 | 145 2426 | 2747 2427 | 2392 2428 | 4147 2429 | 2546 2430 | 1266 2431 | 764 2432 | 3404 2433 | 2771 2434 | 2621 2435 | 4532 2436 | 3212 2437 | 9 2438 | 3424 2439 | 2926 2440 | 2498 2441 | 4027 2442 | 1629 2443 | 904 2444 | 2139 2445 | 4977 2446 | 3134 2447 | 670 2448 | 1984 2449 | 4513 2450 | 4874 2451 | 4675 2452 | 250 2453 | 3199 2454 | 4094 2455 | 1276 2456 | 3612 2457 | 4224 2458 | 3246 2459 | 3403 2460 | 522 2461 | 1641 2462 | 2699 2463 | 3835 2464 | 4325 2465 | 524 2466 | 1767 2467 | 3879 2468 | 4832 2469 | 3324 2470 | 2571 2471 | 1968 2472 | 3995 2473 | 920 2474 | 1865 2475 | 4974 2476 | 372 2477 | 4140 2478 | 125 2479 | 745 2480 | 2233 2481 | 472 2482 | 4135 2483 | 3323 2484 | 3736 2485 | 4312 2486 | 1140 2487 | 2022 2488 | 1079 2489 | 4281 2490 | 2201 2491 | 1638 2492 | 4879 2493 | 4625 2494 | 3663 2495 | 4021 2496 | 2339 2497 | 2085 2498 | 3236 2499 | 331 2500 | 4397 2501 | 4503 2502 | 3594 2503 | 3615 2504 | 4566 2505 | 3941 2506 | 3400 2507 | 479 2508 | 2716 2509 | 2675 2510 | 4481 2511 | 81 2512 | 1650 2513 | 4331 2514 | 2607 2515 | 4283 2516 | 4849 2517 | 271 2518 | 2094 2519 | 3094 2520 | 288 2521 | 1474 2522 | 1855 2523 | 2358 2524 | 4222 2525 | 1668 2526 | 4905 2527 | 1906 2528 | 1694 2529 | 80 2530 | 1985 2531 | 292 2532 | 969 2533 | 964 2534 | 983 2535 | 1246 2536 | 2689 2537 | 4208 2538 | 4997 2539 | 1884 2540 | 1927 2541 | 143 2542 | 1156 2543 | 1975 2544 | 3030 2545 | 1954 2546 | 1477 2547 | 1899 2548 | 4142 2549 | 415 2550 | 4937 2551 | 1071 2552 | 760 2553 | 711 2554 | 1020 2555 | 1919 2556 | 3768 2557 | 680 2558 | 714 2559 | 141 2560 | 353 2561 | 1322 2562 | 1158 2563 | 3823 2564 | 2121 2565 | 924 2566 | 2611 2567 | 2404 2568 | 3818 2569 | 1600 2570 | 3003 2571 | 757 2572 | 4854 2573 | 756 2574 | 423 2575 | 2042 2576 | 801 2577 | 4539 2578 | 2618 2579 | 2834 2580 | 2419 2581 | 4593 2582 | 579 2583 | 4299 2584 | 4179 2585 | 3170 2586 | 420 2587 | 1278 2588 | 3041 2589 | 2485 2590 | 2105 2591 | 2182 2592 | 1632 2593 | 1762 2594 | 3885 2595 | 1337 2596 | 1862 2597 | 1024 2598 | 258 2599 | 171 2600 | 3913 2601 | 3434 2602 | 3303 2603 | 4488 2604 | 1383 2605 | 3392 2606 | 2473 2607 | 4554 2608 | 4808 2609 | 3074 2610 | 3455 2611 | 119 2612 | 3427 2613 | 1476 2614 | 637 2615 | 4829 2616 | 1760 2617 | 3578 2618 | 668 2619 | 1585 2620 | 4352 2621 | 335 2622 | 2676 2623 | 3433 2624 | 3350 2625 | 433 2626 | 3722 2627 | 2668 2628 | 4812 2629 | 1878 2630 | 564 2631 | 424 2632 | 4063 2633 | 2210 2634 | 4261 2635 | 55 2636 | 3299 2637 | 2787 2638 | 3923 2639 | 3785 2640 | 1902 2641 | 53 2642 | 3092 2643 | 4787 2644 | 4935 2645 | 2781 2646 | 4730 2647 | 2957 2648 | 3287 2649 | 1121 2650 | 735 2651 | 2155 2652 | 2646 2653 | 2924 2654 | 2032 2655 | 1299 2656 | 1416 2657 | 3844 2658 | 3901 2659 | 2692 2660 | 4001 2661 | 3764 2662 | 2408 2663 | 4813 2664 | 4254 2665 | 1326 2666 | 2300 2667 | 3183 2668 | 1124 2669 | 3009 2670 | 4777 2671 | 4520 2672 | 69 2673 | 3204 2674 | 1219 2675 | 4672 2676 | 669 2677 | 2930 2678 | 114 2679 | 1594 2680 | 2517 2681 | 2871 2682 | 543 2683 | 3378 2684 | 1861 2685 | 4580 2686 | 1151 2687 | 2877 2688 | 4737 2689 | 368 2690 | 1685 2691 | 851 2692 | 4155 2693 | 2375 2694 | 4168 2695 | 4824 2696 | 359 2697 | 3672 2698 | 2257 2699 | 3449 2700 | 1520 2701 | 573 2702 | 4932 2703 | 555 2704 | 294 2705 | 3087 2706 | 619 2707 | 2027 2708 | 2792 2709 | 1729 2710 | 3947 2711 | 4131 2712 | 943 2713 | 1704 2714 | 1161 2715 | 3729 2716 | 1491 2717 | 4534 2718 | 1567 2719 | 4110 2720 | 3568 2721 | 4961 2722 | 2264 2723 | 2007 2724 | 1363 2725 | 4930 2726 | 2780 2727 | 4349 2728 | 3241 2729 | 4301 2730 | 2262 2731 | 703 2732 | 4934 2733 | 2929 2734 | 2190 2735 | 1843 2736 | 799 2737 | 2550 2738 | 966 2739 | 4709 2740 | 4330 2741 | 3332 2742 | 3654 2743 | 1470 2744 | 25 2745 | 2949 2746 | 2831 2747 | 4886 2748 | 376 2749 | 1265 2750 | 2064 2751 | 4805 2752 | 1269 2753 | 1913 2754 | 4767 2755 | 4796 2756 | 1583 2757 | 4538 2758 | 42 2759 | 1980 2760 | 2175 2761 | 1463 2762 | 4963 2763 | 4608 2764 | 3850 2765 | 4883 2766 | 2163 2767 | 2063 2768 | 2703 2769 | 903 2770 | 1531 2771 | 378 2772 | 1795 2773 | 4167 2774 | 1873 2775 | 4341 2776 | 4908 2777 | 2805 2778 | 3512 2779 | 1298 2780 | 3024 2781 | 4309 2782 | 1315 2783 | 2557 2784 | 2168 2785 | 306 2786 | 4562 2787 | 2206 2788 | 3293 2789 | 476 2790 | 4083 2791 | 3228 2792 | 4190 2793 | 5000 2794 | 352 2795 | 444 2796 | 2901 2797 | 2798 2798 | 2951 2799 | 4440 2800 | 2036 2801 | 1875 2802 | 2632 2803 | 3712 2804 | 4617 2805 | 1464 2806 | 2713 2807 | 1189 2808 | 1274 2809 | 4107 2810 | 31 2811 | 4127 2812 | 2153 2813 | 4696 2814 | 3077 2815 | 4258 2816 | 850 2817 | 2033 2818 | 1803 2819 | 1110 2820 | 2967 2821 | 967 2822 | 448 2823 | 2560 2824 | 565 2825 | 4285 2826 | 1170 2827 | 1236 2828 | 2403 2829 | 4202 2830 | 3192 2831 | 3189 2832 | 1238 2833 | 4563 2834 | 464 2835 | 1421 2836 | 4154 2837 | 1465 2838 | 3123 2839 | 2167 2840 | 1461 2841 | 3493 2842 | 2627 2843 | 4545 2844 | 2559 2845 | 1546 2846 | 2449 2847 | 4178 2848 | 2782 2849 | 3487 2850 | 4203 2851 | 417 2852 | 274 2853 | 800 2854 | 3124 2855 | 4783 2856 | 1794 2857 | 4013 2858 | 4924 2859 | 1014 2860 | 2788 2861 | 1625 2862 | 4347 2863 | 3668 2864 | 2342 2865 | 2301 2866 | 1630 2867 | 2316 2868 | 2371 2869 | 2072 2870 | 2711 2871 | 3998 2872 | 3691 2873 | 2052 2874 | 4993 2875 | 3759 2876 | 3054 2877 | 202 2878 | 2797 2879 | 4758 2880 | 2290 2881 | 270 2882 | 3214 2883 | 4642 2884 | 3927 2885 | 4499 2886 | 630 2887 | 2235 2888 | 2509 2889 | 2911 2890 | 2446 2891 | 4529 2892 | 2545 2893 | 428 2894 | 1452 2895 | 1206 2896 | 285 2897 | 834 2898 | 3922 2899 | 34 2900 | 4465 2901 | 337 2902 | 3688 2903 | 742 2904 | 4507 2905 | 2667 2906 | 3531 2907 | 2350 2908 | 1117 2909 | 3002 2910 | 529 2911 | 1413 2912 | 1874 2913 | 3534 2914 | 3338 2915 | 1840 2916 | 1373 2917 | 2891 2918 | 4122 2919 | 3039 2920 | 442 2921 | 4275 2922 | 4126 2923 | 2344 2924 | 2533 2925 | 4213 2926 | 4802 2927 | 2454 2928 | 416 2929 | 48 2930 | 43 2931 | 3675 2932 | 4279 2933 | 1515 2934 | 1375 2935 | 606 2936 | 1783 2937 | 4769 2938 | 4052 2939 | 4209 2940 | 2572 2941 | 485 2942 | 731 2943 | 2065 2944 | 1892 2945 | 96 2946 | 3249 2947 | 3014 2948 | 3419 2949 | 1768 2950 | 4158 2951 | 2191 2952 | 3800 2953 | 634 2954 | 1691 2955 | 4025 2956 | 1653 2957 | 1752 2958 | 1405 2959 | 2750 2960 | 1926 2961 | 691 2962 | 4353 2963 | 23 2964 | 4383 2965 | 4955 2966 | 1634 2967 | 4542 2968 | 3838 2969 | 4018 2970 | 3045 2971 | 303 2972 | 310 2973 | 4968 2974 | 4706 2975 | 779 2976 | 1961 2977 | 3491 2978 | 1965 2979 | 740 2980 | 4634 2981 | 1549 2982 | 2583 2983 | 4118 2984 | 1080 2985 | 1284 2986 | 563 2987 | 2260 2988 | 2651 2989 | 3572 2990 | 1987 2991 | 4077 2992 | 4743 2993 | 4595 2994 | 1696 2995 | 1360 2996 | 2109 2997 | 2491 2998 | 1197 2999 | 2055 3000 | 1241 3001 | 938 3002 | 14 3003 | 3693 3004 | 3900 3005 | 192 3006 | 767 3007 | 3034 3008 | 4718 3009 | 2563 3010 | 3073 3011 | 1132 3012 | 2827 3013 | 1193 3014 | 4753 3015 | 1636 3016 | 1032 3017 | 106 3018 | 3115 3019 | 3631 3020 | 2359 3021 | 1041 3022 | 746 3023 | 4510 3024 | 4723 3025 | 2866 3026 | 1381 3027 | 2076 3028 | 4304 3029 | 1233 3030 | 3076 3031 | 2456 3032 | 2825 3033 | 3976 3034 | 4729 3035 | 2381 3036 | 1744 3037 | 4670 3038 | 3470 3039 | 4356 3040 | 4474 3041 | 1553 3042 | 1598 3043 | 214 3044 | 3038 3045 | 1361 3046 | 3206 3047 | 1097 3048 | 1547 3049 | 1262 3050 | 1257 3051 | 1402 3052 | 2548 3053 | 2894 3054 | 1053 3055 | 869 3056 | 18 3057 | 4282 3058 | 1587 3059 | 2051 3060 | 788 3061 | 3106 3062 | 944 3063 | 1400 3064 | 576 3065 | 3356 3066 | 682 3067 | 1371 3068 | 3781 3069 | 1374 3070 | 3678 3071 | 1023 3072 | 1034 3073 | 2522 3074 | 3440 3075 | 2326 3076 | 2870 3077 | 4280 3078 | 3250 3079 | 3624 3080 | 2681 3081 | 953 3082 | 4711 3083 | 2688 3084 | 2317 3085 | 678 3086 | 4869 3087 | 3125 3088 | 4938 3089 | 1663 3090 | 2205 3091 | 373 3092 | 3944 3093 | 2091 3094 | 4719 3095 | 803 3096 | 61 3097 | 2799 3098 | 1566 3099 | 738 3100 | 4742 3101 | 4307 3102 | 1683 3103 | 2743 3104 | 534 3105 | 2117 3106 | 1793 3107 | 379 3108 | 3484 3109 | 4990 3110 | 1766 3111 | 3796 3112 | 418 3113 | 2200 3114 | 4075 3115 | 875 3116 | 186 3117 | 1648 3118 | 2567 3119 | 3853 3120 | 1647 3121 | 3064 3122 | 4399 3123 | 2592 3124 | 1617 3125 | 792 3126 | 4384 3127 | 1429 3128 | 2177 3129 | 1123 3130 | 4856 3131 | 4570 3132 | 1133 3133 | 2997 3134 | 443 3135 | 3119 3136 | 1556 3137 | 582 3138 | 3145 3139 | 1946 3140 | 3541 3141 | 4153 3142 | 1437 3143 | 4596 3144 | 381 3145 | 3749 3146 | 4643 3147 | 2417 3148 | 4010 3149 | 4839 3150 | 2624 3151 | 1835 3152 | 812 3153 | 1217 3154 | 4086 3155 | 2142 3156 | 2683 3157 | 2012 3158 | 4427 3159 | 3306 3160 | 859 3161 | 4661 3162 | 2062 3163 | 2783 3164 | 648 3165 | 2043 3166 | 1458 3167 | 4724 3168 | 4627 3169 | 1129 3170 | 554 3171 | 1922 3172 | 768 3173 | 681 3174 | 633 3175 | 3925 3176 | 4073 3177 | 574 3178 | 1725 3179 | 959 3180 | 2203 3181 | 507 3182 | 4994 3183 | 1645 3184 | 358 3185 | 2115 3186 | 2908 3187 | 1620 3188 | 1331 3189 | 3281 3190 | 173 3191 | 3098 3192 | 1658 3193 | 1666 3194 | 4923 3195 | 3441 3196 | 29 3197 | 286 3198 | 2883 3199 | 4335 3200 | 4256 3201 | 4558 3202 | 3914 3203 | 2273 3204 | 2278 3205 | 3858 3206 | 334 3207 | 2253 3208 | 1791 3209 | 1112 3210 | 4850 3211 | 741 3212 | 1939 3213 | 170 3214 | 50 3215 | 2415 3216 | 98 3217 | 2976 3218 | 2164 3219 | 4292 3220 | 3981 3221 | 1941 3222 | 4262 3223 | 4739 3224 | 684 3225 | 2030 3226 | 3696 3227 | 2465 3228 | 1940 3229 | 2231 3230 | 158 3231 | 1406 3232 | 2625 3233 | 3933 3234 | 1350 3235 | 74 3236 | 3970 3237 | 3475 3238 | 3600 3239 | 305 3240 | 958 3241 | 4355 3242 | 3257 3243 | 4109 3244 | 2104 3245 | 2697 3246 | 3558 3247 | 3508 3248 | 657 3249 | 3939 3250 | 728 3251 | 1335 3252 | 1448 3253 | 2591 3254 | 4479 3255 | 3033 3256 | 3027 3257 | 3579 3258 | 2983 3259 | 3352 3260 | 1142 3261 | 885 3262 | 4346 3263 | 607 3264 | 2953 3265 | 709 3266 | 2159 3267 | 104 3268 | 685 3269 | 3640 3270 | 2313 3271 | 902 3272 | 2 3273 | 455 3274 | 699 3275 | 2814 3276 | 4809 3277 | 3882 3278 | 4136 3279 | 604 3280 | 4731 3281 | 860 3282 | 2406 3283 | 4259 3284 | 3099 3285 | 2242 3286 | 75 3287 | 4631 3288 | 1059 3289 | 2141 3290 | 3760 3291 | 1066 3292 | 4732 3293 | 4211 3294 | 3528 3295 | 4703 3296 | 935 3297 | 2234 3298 | 2194 3299 | 4436 3300 | 2837 3301 | 194 3302 | 1222 3303 | 3953 3304 | 1808 3305 | 4914 3306 | 1275 3307 | 3217 3308 | 2352 3309 | 221 3310 | 3307 3311 | 4565 3312 | 3302 3313 | 2800 3314 | 16 3315 | 232 3316 | 2718 3317 | 1753 3318 | 4578 3319 | 4609 3320 | 2682 3321 | 4361 3322 | 3286 3323 | 2868 3324 | 467 3325 | 3966 3326 | 2320 3327 | 4323 3328 | 1960 3329 | 2649 3330 | 4079 3331 | 4807 3332 | 2160 3333 | 3985 3334 | 3773 3335 | 2939 3336 | 4677 3337 | 730 3338 | 2739 3339 | 1781 3340 | 1172 3341 | 1511 3342 | 2003 3343 | 161 3344 | 308 3345 | 4727 3346 | 2778 3347 | 174 3348 | 3283 3349 | 1964 3350 | 2057 3351 | 3093 3352 | 2318 3353 | 1688 3354 | 4133 3355 | 1637 3356 | 3061 3357 | 1983 3358 | 175 3359 | 1138 3360 | 4770 3361 | 2010 3362 | 4527 3363 | 2922 3364 | 412 3365 | 4624 3366 | 1107 3367 | 3504 3368 | 127 3369 | 2578 3370 | 977 3371 | 4160 3372 | 3333 3373 | 1033 3374 | 3704 3375 | 3107 3376 | 4002 3377 | 3505 3378 | 640 3379 | 2486 3380 | 263 3381 | 283 3382 | 3220 3383 | 3983 3384 | 1152 3385 | 4901 3386 | 4379 3387 | 580 3388 | 3172 3389 | 1936 3390 | 3687 3391 | 2494 3392 | 560 3393 | 1211 3394 | 3195 3395 | 4288 3396 | 1661 3397 | 2080 3398 | 2829 3399 | 1013 3400 | 3747 3401 | 590 3402 | 487 3403 | 1169 3404 | 360 3405 | 715 3406 | 2176 3407 | 1277 3408 | 4960 3409 | 3060 3410 | 4 3411 | 4885 3412 | 4862 3413 | 1340 3414 | 998 3415 | 2047 3416 | 101 3417 | 4579 3418 | 318 3419 | 3617 3420 | 4941 3421 | 761 3422 | 690 3423 | 3412 3424 | 2822 3425 | 1979 3426 | 4806 3427 | 3786 3428 | 1578 3429 | 3586 3430 | 3388 3431 | 4334 3432 | 4435 3433 | 1144 3434 | 2853 3435 | 2650 3436 | 3274 3437 | 1908 3438 | 4351 3439 | 4188 3440 | 2006 3441 | 4477 3442 | 2196 3443 | 2363 3444 | 4695 3445 | 4959 3446 | 2789 3447 | 3012 3448 | 1530 3449 | 3225 3450 | 3090 3451 | 196 3452 | 4851 3453 | 1208 3454 | 750 3455 | 1430 3456 | 2438 3457 | 667 3458 | 3673 3459 | 1765 3460 | 168 3461 | 4268 3462 | 4339 3463 | 2407 3464 | 82 3465 | 2588 3466 | 3545 3467 | 863 3468 | 212 3469 | 201 3470 | 217 3471 | 1542 3472 | 1060 3473 | 1584 3474 | 989 3475 | 3448 3476 | 2103 3477 | 4305 3478 | 3804 3479 | 1771 3480 | 705 3481 | 4316 3482 | 1633 3483 | 3209 3484 | 4792 3485 | 704 3486 | 1183 3487 | 3993 3488 | 2785 3489 | 3198 3490 | 2451 3491 | 2490 3492 | 4111 3493 | 3619 3494 | 4699 3495 | 4666 3496 | 3477 3497 | 4260 3498 | 4359 3499 | 1801 3500 | 355 3501 | 3783 3502 | 449 3503 | 4659 3504 | 3421 3505 | 2423 3506 | 4890 3507 | 1141 3508 | 4421 3509 | 1434 3510 | 54 3511 | 3803 3512 | 3050 3513 | 7 3514 | 3906 3515 | 3625 3516 | 883 3517 | 325 3518 | 1657 3519 | 4415 3520 | 3361 3521 | 713 3522 | 4476 3523 | 3560 3524 | 772 3525 | 2623 3526 | 3265 3527 | 2823 3528 | 4981 3529 | 4416 3530 | 2595 3531 | 501 3532 | 4518 3533 | 1649 3534 | 1621 3535 | 164 3536 | 1920 3537 | 2963 3538 | 32 3539 | 3385 3540 | 1102 3541 | 4798 3542 | 1268 3543 | 3814 3544 | 3242 3545 | 974 3546 | 215 3547 | 4763 3548 | 2842 3549 | 826 3550 | 3929 3551 | 710 3552 | 2931 3553 | 2845 3554 | 1105 3555 | 4511 3556 | 1711 3557 | 1057 3558 | 2838 3559 | 4749 3560 | 3782 3561 | 2636 3562 | 3309 3563 | 2116 3564 | 3127 3565 | 4936 3566 | 4478 3567 | 4192 3568 | 2525 3569 | 136 3570 | 1800 3571 | 3908 3572 | 3860 3573 | 2836 3574 | 124 3575 | 3951 3576 | 11 3577 | 103 3578 | 3868 3579 | 461 3580 | 4337 3581 | 496 3582 | 4793 3583 | 4722 3584 | 3296 3585 | 3456 3586 | 4958 3587 | 3826 3588 | 581 3589 | 2396 3590 | 4861 3591 | 2614 3592 | 3852 3593 | 3967 3594 | 1828 3595 | 1608 3596 | 301 3597 | 3341 3598 | 1742 3599 | 484 3600 | 3168 3601 | 3415 3602 | 324 3603 | 4036 3604 | 2374 3605 | 4896 3606 | 3437 3607 | 1640 3608 | 2766 3609 | 4308 3610 | 2728 3611 | 2878 3612 | 3664 3613 | 2523 3614 | 2754 3615 | 1157 3616 | 3232 3617 | 2830 3618 | 4385 3619 | 2237 3620 | 4594 3621 | 3778 3622 | 1903 3623 | 517 3624 | 131 3625 | 986 3626 | 1280 3627 | 393 3628 | 3903 3629 | 4327 3630 | 914 3631 | 1349 3632 | 931 3633 | 4956 3634 | 4906 3635 | 2453 3636 | 3317 3637 | 280 3638 | 3842 3639 | 1446 3640 | 2110 3641 | 1990 3642 | 1509 3643 | 3961 3644 | 1415 3645 | 526 3646 | 1433 3647 | 4589 3648 | 4236 3649 | 1925 3650 | 2955 3651 | 347 3652 | 268 3653 | 388 3654 | 1160 3655 | 2385 3656 | 3091 3657 | 2602 3658 | 4952 3659 | 2777 3660 | 4466 3661 | 3620 3662 | 3590 3663 | 1912 3664 | 4946 3665 | 820 3666 | 3222 3667 | 3036 3668 | 4392 3669 | 4678 3670 | 1673 3671 | 1095 3672 | 1394 3673 | 952 3674 | 4332 3675 | 475 3676 | 3743 3677 | 3638 3678 | 3144 3679 | 2181 3680 | 1137 3681 | 2098 3682 | 2435 3683 | 2574 3684 | 4757 3685 | 2704 3686 | 357 3687 | 1897 3688 | 1705 3689 | 4689 3690 | 3266 3691 | 2641 3692 | 908 3693 | 4904 3694 | 236 3695 | 3717 3696 | 4681 3697 | 1957 3698 | 569 3699 | 2441 3700 | 4693 3701 | 3683 3702 | 3649 3703 | 245 3704 | 1593 3705 | 4969 3706 | 405 3707 | 336 3708 | 2735 3709 | 162 3710 | 2979 3711 | 1303 3712 | 4630 3713 | 3904 3714 | 256 3715 | 1552 3716 | 1971 3717 | 4569 3718 | 3556 3719 | 3642 3720 | 1366 3721 | 1412 3722 | 4536 3723 | 1541 3724 | 557 3725 | 1978 3726 | 1565 3727 | 4235 3728 | 3896 3729 | 481 3730 | 400 3731 | 3546 3732 | 3825 3733 | 3029 3734 | 3184 3735 | 2846 3736 | 2321 3737 | 3186 3738 | 1127 3739 | 1432 3740 | 220 3741 | 2639 3742 | 644 3743 | 300 3744 | 3871 3745 | 2575 3746 | 600 3747 | 4892 3748 | 2989 3749 | 927 3750 | 1654 3751 | 1699 3752 | 492 3753 | 4847 3754 | 451 3755 | 2701 3756 | 2287 3757 | 3420 3758 | 4378 3759 | 4445 3760 | 4393 3761 | 4019 3762 | 2368 3763 | 3193 3764 | 2439 3765 | 4640 3766 | 3476 3767 | 1802 3768 | 2917 3769 | 4134 3770 | 3548 3771 | 2954 3772 | 3463 3773 | 3735 3774 | 2923 3775 | 592 3776 | 4024 3777 | 3043 3778 | 2428 3779 | 2488 3780 | 4008 3781 | 2340 3782 | 84 3783 | 4720 3784 | 2269 3785 | 1118 3786 | 3275 3787 | 3469 3788 | 663 3789 | 3605 3790 | 2946 3791 | 3164 3792 | 3748 3793 | 471 3794 | 3355 3795 | 1048 3796 | 3874 3797 | 2674 3798 | 382 3799 | 2858 3800 | 2857 3801 | 4068 3802 | 2731 3803 | 4710 3804 | 278 3805 | 3267 3806 | 4834 3807 | 4665 3808 | 3851 3809 | 878 3810 | 1883 3811 | 2322 3812 | 525 3813 | 401 3814 | 2905 3815 | 2397 3816 | 4779 3817 | 3540 3818 | 4928 3819 | 1006 3820 | 1103 3821 | 2113 3822 | 572 3823 | 3817 3824 | 1126 3825 | 1528 3826 | 3779 3827 | 351 3828 | 3320 3829 | 2197 3830 | 3809 3831 | 462 3832 | 2324 3833 | 1426 3834 | 2944 3835 | 652 3836 | 1970 3837 | 1724 3838 | 4414 3839 | 2331 3840 | 4918 3841 | 3109 3842 | 3485 3843 | 3291 3844 | 2388 3845 | 934 3846 | 4915 3847 | 149 3848 | 1130 3849 | 1655 3850 | 4172 3851 | 3991 3852 | 1590 3853 | 4803 3854 | 519 3855 | 612 3856 | 3680 3857 | 122 3858 | 708 3859 | 1343 3860 | 4976 3861 | 570 3862 | 1221 3863 | 3139 3864 | 527 3865 | 4049 3866 | 3830 3867 | 1951 3868 | 1258 3869 | 1442 3870 | 1797 3871 | 1499 3872 | 4688 3873 | 3606 3874 | 1910 3875 | 1944 3876 | 3221 3877 | 333 3878 | 4245 3879 | 2169 3880 | 4371 3881 | 4668 3882 | 3255 3883 | 1312 3884 | 3368 3885 | 736 3886 | 4101 3887 | 1627 3888 | 1687 3889 | 4683 3890 | 2107 3891 | 4447 3892 | 1388 3893 | 2476 3894 | 3883 3895 | 3182 3896 | 1244 3897 | 2556 3898 | 3219 3899 | 3161 3900 | 407 3901 | 3213 3902 | 3765 3903 | 1036 3904 | 3374 3905 | 251 3906 | 2140 3907 | 1423 3908 | 2647 3909 | 1603 3910 | 624 3911 | 2484 3912 | 4648 3913 | 1444 3914 | 1068 3915 | 2818 3916 | 4310 3917 | 4276 3918 | 1676 3919 | 567 3920 | 4791 3921 | 2642 3922 | 3514 3923 | 2185 3924 | 249 3925 | 2940 3926 | 4607 3927 | 2039 3928 | 64 3929 | 4485 3930 | 3657 3931 | 2479 3932 | 3630 3933 | 4249 3934 | 1819 3935 | 2597 3936 | 857 3937 | 4296 3938 | 112 3939 | 3595 3940 | 3945 3941 | 3987 3942 | 346 3943 | 2530 3944 | 1993 3945 | 3201 3946 | 2090 3947 | 4756 3948 | 907 3949 | 21 3950 | 241 3951 | 4898 3952 | 4084 3953 | 1232 3954 | 2644 3955 | 2102 3956 | 916 3957 | 3793 3958 | 4833 3959 | 1045 3960 | 2084 3961 | 4092 3962 | 2706 3963 | 1992 3964 | 2075 3965 | 1234 3966 | 819 3967 | 4453 3968 | 4034 3969 | 1199 3970 | 4985 3971 | 1380 3972 | 2259 3973 | 2145 3974 | 3516 3975 | 1407 3976 | 1292 3977 | 2431 3978 | 2977 3979 | 3483 3980 | 2328 3981 | 495 3982 | 4900 3983 | 910 3984 | 887 3985 | 1860 3986 | 823 3987 | 2996 3988 | 2531 3989 | 1291 3990 | 483 3991 | 216 3992 | 1524 3993 | 995 3994 | 4776 3995 | 4971 3996 | 615 3997 | 2995 3998 | 4156 3999 | 638 4000 | 2943 4001 | 226 4002 | 4667 4003 | 4519 4004 | 3037 4005 | 2002 4006 | 4490 4007 | 1953 4008 | 2195 4009 | 2815 4010 | 1393 4011 | 4200 4012 | 1333 4013 | 2199 4014 | 4552 4015 | 3362 4016 | 1639 4017 | 377 4018 | 4765 4019 | 623 4020 | 1389 4021 | 2499 4022 | 1678 4023 | 1804 4024 | 4557 4025 | 3318 4026 | 30 4027 | 1672 4028 | 1818 4029 | 2762 4030 | 598 4031 | 3105 4032 | 3952 4033 | 2000 4034 | 4391 4035 | 1924 4036 | 1248 4037 | 2263 4038 | 1933 4039 | 1727 4040 | 2865 4041 | 273 4042 | 1700 4043 | 3632 4044 | 4702 4045 | 1338 4046 | 2224 4047 | 3351 4048 | 4463 4049 | 2907 4050 | 3662 4051 | 3915 4052 | 3008 4053 | 3731 4054 | 1570 4055 | 1829 4056 | 1820 4057 | 2612 4058 | 184 4059 | 2886 4060 | 206 4061 | 2610 4062 | 528 4063 | 1958 4064 | 4343 4065 | 299 4066 | 650 4067 | 2962 4068 | 677 4069 | 4910 4070 | 1453 4071 | 854 4072 | 4530 4073 | 4920 4074 | 403 4075 | 3215 4076 | 4291 4077 | 3821 4078 | 4741 4079 | 3234 4080 | 1813 4081 | 441 4082 | 868 4083 | 3113 4084 | 3776 4085 | 321 4086 | 2774 4087 | 1785 4088 | 4880 4089 | 1948 4090 | 3384 4091 | 4842 4092 | 992 4093 | 2796 4094 | 1937 4095 | 3180 4096 | 766 4097 | 1026 4098 | 4581 4099 | 3699 4100 | 2961 4101 | 3040 4102 | 3251 4103 | 2069 4104 | 577 4105 | 1849 4106 | 4858 4107 | 3775 4108 | 928 4109 | 3677 4110 | 4498 4111 | 1643 4112 | 2608 4113 | 3863 4114 | 2756 4115 | 2017 4116 | 1314 4117 | 2670 4118 | 1153 4119 | 509 4120 | 1746 4121 | 3565 4122 | 4679 4123 | 3330 4124 | 2851 4125 | 2828 4126 | 1424 4127 | 2148 4128 | 1255 4129 | 603 4130 | 571 4131 | 874 4132 | 242 4133 | 1606 4134 | 3771 4135 | 1994 4136 | 2389 4137 | 3131 4138 | 4629 4139 | 2898 4140 | 41 4141 | 1579 4142 | 4128 4143 | 4491 4144 | 1101 4145 | 3659 4146 | 3968 4147 | 3714 4148 | 3430 4149 | 3652 4150 | 2835 4151 | 2903 4152 | 187 4153 | 4090 4154 | 971 4155 | 814 4156 | 1473 4157 | 1368 4158 | 1757 4159 | 2806 4160 | 1240 4161 | 1431 4162 | 1038 4163 | 2198 4164 | 2889 4165 | 1392 4166 | 1111 4167 | 3051 4168 | 4389 4169 | 1943 4170 | 1631 4171 | 3233 4172 | 1726 4173 | 4459 4174 | 3519 4175 | 4801 4176 | 179 4177 | 3816 4178 | 3254 4179 | 4912 4180 | 3513 4181 | 3994 4182 | 3243 4183 | 4692 4184 | 345 4185 | 434 4186 | 655 4187 | 2061 4188 | 3661 4189 | 2972 4190 | 3423 4191 | 1428 4192 | 4573 4193 | 3095 4194 | 1489 4195 | 2070 4196 | 4628 4197 | 2425 4198 | 4074 4199 | 1811 4200 | 4664 4201 | 2146 4202 | 4653 4203 | 4999 4204 | 4646 4205 | 4799 4206 | 4654 4207 | 3553 4208 | 2395 4209 | 85 4210 | 2599 4211 | 3173 4212 | 4782 4213 | 692 4214 | 4450 4215 | 1089 4216 | 3329 4217 | 858 4218 | 3679 4219 | 538 4220 | 2376 4221 | 3690 4222 | 2283 4223 | 3738 4224 | 361 4225 | 3451 4226 | 137 4227 | 3025 4228 | 4907 4229 | 4632 4230 | 4161 4231 | 4265 4232 | 4170 4233 | 3990 4234 | 2204 4235 | 1592 4236 | 491 4237 | 4087 4238 | 2973 4239 | 3239 4240 | 2734 4241 | 2779 4242 | 1523 4243 | 413 4244 | 3083 4245 | 3468 4246 | 2942 4247 | 3854 4248 | 2430 4249 | 4376 4250 | 1286 4251 | 3789 4252 | 4822 4253 | 2492 4254 | 3466 4255 | 4967 4256 | 1659 4257 | 4734 4258 | 79 4259 | 2742 4260 | 3405 4261 | 313 4262 | 177 4263 | 1745 4264 | 3117 4265 | 2544 4266 | 3728 4267 | 3365 4268 | 2535 4269 | 1751 4270 | 951 4271 | 4614 4272 | 946 4273 | 4402 4274 | 1439 4275 | 1204 4276 | 4637 4277 | 2009 4278 | 3946 4279 | 3598 4280 | 3551 4281 | 3022 4282 | 4492 4283 | 3360 4284 | 486 4285 | 326 4286 | 665 4287 | 4232 4288 | 4165 4289 | 478 4290 | 4062 4291 | 94 4292 | 193 4293 | 4124 4294 | 28 4295 | 2427 4296 | 1165 4297 | 841 4298 | 2744 4299 | 3698 4300 | 239 4301 | 99 4302 | 73 4303 | 2503 4304 | 3774 4305 | 4922 4306 | 531 4307 | 3875 4308 | 3460 4309 | 4820 4310 | 231 4311 | 4149 4312 | 932 4313 | 3847 4314 | 1891 4315 | 3892 4316 | 4412 4317 | 1626 4318 | 2129 4319 | 1227 4320 | 2643 4321 | 1220 4322 | 702 4323 | 2927 4324 | 1441 4325 | 1612 4326 | 4641 4327 | 1988 4328 | 880 4329 | 3526 4330 | 3857 4331 | 2268 4332 | 559 4333 | 2401 4334 | 1831 4335 | 2769 4336 | 4095 4337 | 2186 4338 | 2464 4339 | 706 4340 | 3102 4341 | 4761 4342 | 2549 4343 | 151 4344 | 748 4345 | 3554 4346 | 115 4347 | 4828 4348 | 146 4349 | 4712 4350 | 338 4351 | 2410 4352 | 4061 4353 | 4784 4354 | 890 4355 | 4278 4356 | 3890 4357 | 2988 4358 | 4576 4359 | 4396 4360 | 4387 4361 | 3121 4362 | 4175 4363 | 1336 4364 | 3511 4365 | 1364 4366 | 304 4367 | 3751 4368 | 700 4369 | 1200 4370 | 435 4371 | 3488 4372 | 2804 4373 | 856 4374 | 1099 4375 | 3354 4376 | 514 4377 | 1519 4378 | 4547 4379 | 3410 4380 | 3486 4381 | 4113 4382 | 2424 4383 | 4853 4384 | 2910 4385 | 666 4386 | 1896 4387 | 2314 4388 | 139 4389 | 1900 4390 | 4544 4391 | 2958 4392 | 3230 4393 | 1577 4394 | 3815 4395 | 1104 4396 | 2710 4397 | 2603 4398 | 436 4399 | 2391 4400 | 3848 4401 | 963 4402 | 234 4403 | 3627 4404 | 3864 4405 | 925 4406 | 3447 4407 | 1087 4408 | 4163 4409 | 2663 4410 | 2150 4411 | 4982 4412 | 2101 4413 | 1928 4414 | 4410 4415 | 67 4416 | 1399 4417 | 4873 4418 | 4899 4419 | 3059 4420 | 4270 4421 | 1304 4422 | 4274 4423 | 2843 4424 | 2918 4425 | 4611 4426 | 2414 4427 | 4940 4428 | 979 4429 | 1397 4430 | 4186 4431 | 89 4432 | 3395 4433 | 1847 4434 | 712 4435 | 1825 4436 | 2725 4437 | 2135 4438 | 3001 4439 | 4996 4440 | 973 4441 | 1898 4442 | 4419 4443 | 743 4444 | 3158 4445 | 4721 4446 | 4443 4447 | 4725 4448 | 3322 4449 | 1449 4450 | 279 4451 | 3920 4452 | 4150 4453 | 105 4454 | 2087 4455 | 1391 4456 | 95 4457 | 3346 4458 | 3538 4459 | 4613 4460 | 1317 4461 | 3653 4462 | 2760 4463 | 2180 4464 | 694 4465 | 1224 4466 | 4582 4467 | 4460 4468 | 2133 4469 | 328 4470 | 778 4471 | 2443 4472 | 3371 4473 | 2673 4474 | 3315 4475 | 1146 4476 | 4295 4477 | 1365 4478 | 1000 4479 | 3628 4480 | 1513 4481 | 1772 4482 | 2841 4483 | 1210 4484 | 4546 4485 | 3973 4486 | 1440 4487 | 1535 4488 | 2463 4489 | 3996 4490 | 1827 4491 | 130 4492 | 749 4493 | 3507 4494 | 362 4495 | 1250 4496 | 4056 4497 | 3539 4498 | 3358 4499 | 4119 4500 | 3643 4501 | 2020 4502 | 46 4503 | 620 4504 | 2382 4505 | 68 4506 | 1500 4507 | 1259 4508 | 4218 4509 | 2216 4510 | 1049 4511 | 4328 4512 | 1279 4513 | 3157 4514 | 895 4515 | 1761 4516 | 2220 4517 | 3974 4518 | 3188 4519 | 4225 4520 | 2751 4521 | 870 4522 | 4623 4523 | 2309 4524 | 3439 4525 | 4863 4526 | 540 4527 | 724 4528 | 4797 4529 | 4680 4530 | 4750 4531 | 965 4532 | 3007 4533 | 3321 4534 | 535 4535 | 3443 4536 | 882 4537 | 3563 4538 | 4038 4539 | 2982 4540 | 1386 4541 | 261 4542 | 4191 4543 | 2373 4544 | 2587 4545 | 3919 4546 | 3509 4547 | 2968 4548 | 3635 4549 | 3386 4550 | 1450 4551 | 2824 4552 | 4022 4553 | 1876 4554 | 897 4555 | 949 4556 | 3348 4557 | 2984 4558 | 889 4559 | 4926 4560 | 2288 4561 | 2154 4562 | 4509 4563 | 852 4564 | 4815 4565 | 2360 4566 | 2985 4567 | 2684 4568 | 3667 4569 | 933 4570 | 4684 4571 | 891 4572 | 1376 4573 | 1778 4574 | 1271 4575 | 926 4576 | 3603 4577 | 3137 4578 | 3651 4579 | 348 4580 | 754 4581 | 4244 4582 | 753 4583 | 3026 4584 | 4470 4585 | 3328 4586 | 621 4587 | 3032 4588 | 4426 4589 | 2399 4590 | 1082 4591 | 1851 4592 | 1574 4593 | 440 4594 | 2980 4595 | 1561 4596 | 3719 4597 | 391 4598 | 3203 4599 | 123 4600 | 1692 4601 | 1467 4602 | 4174 4603 | 3811 4604 | 4714 4605 | 198 4606 | 3873 4607 | 2568 4608 | 575 4609 | 4537 4610 | 4210 4611 | 3856 4612 | 2040 4613 | 2229 4614 | 3411 4615 | 1599 4616 | 4293 4617 | 4962 4618 | 3165 4619 | 225 4620 | 3382 4621 | 1037 4622 | 1300 4623 | 3237 4624 | 2719 4625 | 3499 4626 | 4377 4627 | 205 4628 | 4836 4629 | 1004 4630 | 411 4631 | 1512 4632 | 1596 4633 | 830 4634 | 3935 4635 | 1929 4636 | 3343 4637 | 2504 4638 | 2604 4639 | 364 4640 | 281 4641 | 386 4642 | 4674 4643 | 3310 4644 | 2418 4645 | 3391 4646 | 2510 4647 | 833 4648 | 2054 4649 | 2092 4650 | 1973 4651 | 33 4652 | 1215 4653 | 3938 4654 | 4401 4655 | 1186 4656 | 3802 4657 | 4867 4658 | 2772 4659 | 4790 4660 | 3674 4661 | 1341 4662 | 3792 4663 | 2952 4664 | 4322 4665 | 2459 4666 | 2011 4667 | 3870 4668 | 2959 4669 | 1096 4670 | 4975 4671 | 609 4672 | 4685 4673 | 1717 4674 | 4003 4675 | 1749 4676 | 4177 4677 | 3780 4678 | 4204 4679 | 323 4680 | 2919 4681 | 419 4682 | 1362 4683 | 2483 4684 | 375 4685 | 2899 4686 | 3807 4687 | 1962 4688 | 1682 4689 | 385 4690 | 3741 4691 | 1091 4692 | 4823 4693 | 3602 4694 | 302 4695 | 3766 4696 | 2913 4697 | 453 4698 | 2158 4699 | 1615 4700 | 3380 4701 | 1409 4702 | 2295 4703 | 2297 4704 | 4320 4705 | 314 4706 | 2306 4707 | 4523 4708 | 3200 4709 | 4145 4710 | 562 4711 | 1182 4712 | 3550 4713 | 3104 4714 | 3931 4715 | 2174 4716 | 3942 4717 | 1619 4718 | 3023 4719 | 3383 4720 | 3924 4721 | 1072 4722 | 3408 4723 | 2635 4724 | 4287 4725 | 118 4726 | 4811 4727 | 1396 4728 | 1226 4729 | 1166 4730 | 3713 4731 | 3575 4732 | 1106 4733 | 3788 4734 | 1147 4735 | 3004 4736 | 4921 4737 | 3593 4738 | 429 4739 | 1738 4740 | 1894 4741 | 4656 4742 | 1270 4743 | 3065 4744 | 1285 4745 | 3943 4746 | 3135 4747 | 993 4748 | 2680 4749 | 3629 4750 | 3772 4751 | 3917 4752 | 100 4753 | 4212 4754 | 2028 4755 | 3790 4756 | 2436 4757 | 3706 4758 | 2895 4759 | 1084 4760 | 1195 4761 | 1296 4762 | 3670 4763 | 2026 4764 | 2606 4765 | 4053 4766 | 497 4767 | 3984 4768 | 4601 4769 | 2228 4770 | 450 4771 | 147 4772 | 1684 4773 | 511 4774 | 3701 4775 | 83 4776 | 1055 4777 | 4571 4778 | 3889 4779 | 3063 4780 | 3081 4781 | 4660 4782 | 4789 4783 | 1576 4784 | 260 4785 | 3176 4786 | 1357 4787 | 2122 4788 | 3833 4789 | 2274 4790 | 264 4791 | 504 4792 | 3872 4793 | 1844 4794 | 4231 4795 | 2059 4796 | 1517 4797 | 1311 4798 | 1622 4799 | 4319 4800 | 1081 4801 | 808 4802 | 1481 4803 | 4942 4804 | 4365 4805 | 2542 4806 | 3393 4807 | 3216 4808 | 4673 4809 | 3279 4810 | 4103 4811 | 2126 4812 | 2937 4813 | 1713 4814 | 1841 4815 | 3732 4816 | 4011 4817 | 2654 4818 | 3656 4819 | 2081 4820 | 1816 4821 | 1496 4822 | 1748 4823 | 1737 4824 | 3934 4825 | 3767 4826 | 4042 4827 | 2335 4828 | 2128 4829 | 1261 4830 | 4533 4831 | 2114 4832 | 1419 4833 | 2537 4834 | 90 4835 | 4252 4836 | 4826 4837 | 4050 4838 | 1525 4839 | 3479 4840 | 3846 4841 | 3501 4842 | 312 4843 | 1093 4844 | 855 4845 | 480 4846 | 642 4847 | 3763 4848 | 40 4849 | 4116 4850 | 4572 4851 | 4785 4852 | 3899 4853 | 4551 4854 | 1154 4855 | 4230 4856 | 3972 4857 | 2254 4858 | 2854 4859 | 395 4860 | 458 4861 | 4026 4862 | 2579 4863 | 825 4864 | 4104 4865 | 3840 4866 | 2896 4867 | 2023 4868 | 635 4869 | 3370 4870 | 2025 4871 | 2266 4872 | 3806 4873 | 523 4874 | 1297 4875 | 4197 4876 | 4195 4877 | 4273 4878 | 3753 4879 | 539 4880 | 2147 4881 | 2329 4882 | 915 4883 | 366 4884 | 1466 4885 | 4449 4886 | 1109 4887 | 3716 4888 | 3163 4889 | 1484 4890 | 1058 4891 | 591 4892 | 1344 4893 | 4560 4894 | 3432 4895 | 2068 4896 | 3891 4897 | 4810 4898 | 1770 4899 | 3416 4900 | 4882 4901 | 2630 4902 | 1616 4903 | 4966 4904 | 1242 4905 | 4612 4906 | 4271 4907 | 2729 4908 | 3708 4909 | 3549 4910 | 3301 4911 | 4972 4912 | 2019 4913 | 4096 4914 | 4223 4915 | 153 4916 | 2330 4917 | 1457 4918 | 3644 4919 | 3197 4920 | 4289 4921 | 2137 4922 | 4585 4923 | 3280 4924 | 2631 4925 | 1664 4926 | 4682 4927 | 1904 4928 | 3724 4929 | 918 4930 | 3503 4931 | 4433 4932 | 422 4933 | 3497 4934 | 674 4935 | 1239 4936 | 4112 4937 | 1563 4938 | 2897 4939 | 4602 4940 | 4903 4941 | 3834 4942 | 1665 4943 | 1351 4944 | 3562 4945 | 2653 4946 | 4600 4947 | 3797 4948 | 3132 4949 | 4845 4950 | 1866 4951 | 824 4952 | 2506 4953 | 3457 4954 | 1917 4955 | 4051 4956 | 3086 4957 | 2759 4958 | 4000 4959 | 456 4960 | 4422 4961 | 3820 4962 | 4949 4963 | 3312 4964 | 3529 4965 | 4701 4966 | 832 4967 | 4217 4968 | 662 4969 | 3373 4970 | 2455 4971 | 10 4972 | 3878 4973 | 315 4974 | 4041 4975 | 4644 4976 | 4768 4977 | 1817 4978 | 1155 4979 | 2347 4980 | 2493 4981 | 4887 4982 | 3895 4983 | 2863 4984 | 802 4985 | 884 4986 | 2008 4987 | 1573 4988 | 2990 4989 | 4846 4990 | 3349 4991 | 4407 4992 | 4884 4993 | 182 4994 | 3777 4995 | 2244 4996 | 2538 4997 | 1823 4998 | 1571 4999 | 4129 5000 | 1353 5001 | -------------------------------------------------------------------------------- /code/probs/prob3/sort/sort1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/code/probs/prob3/sort/sort1 -------------------------------------------------------------------------------- /code/probs/prob3/sort/sort2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/code/probs/prob3/sort/sort2 -------------------------------------------------------------------------------- /code/probs/prob3/sort/sort3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/code/probs/prob3/sort/sort3 -------------------------------------------------------------------------------- /code/probs/prob3/sort/sorted5000.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | 6 7 | 7 8 | 8 9 | 9 10 | 10 11 | 11 12 | 12 13 | 13 14 | 14 15 | 15 16 | 16 17 | 17 18 | 18 19 | 19 20 | 20 21 | 21 22 | 22 23 | 23 24 | 24 25 | 25 26 | 26 27 | 27 28 | 28 29 | 29 30 | 30 31 | 31 32 | 32 33 | 33 34 | 34 35 | 35 36 | 36 37 | 37 38 | 38 39 | 39 40 | 40 41 | 41 42 | 42 43 | 43 44 | 44 45 | 45 46 | 46 47 | 47 48 | 48 49 | 49 50 | 50 51 | 51 52 | 52 53 | 53 54 | 54 55 | 55 56 | 56 57 | 57 58 | 58 59 | 59 60 | 60 61 | 61 62 | 62 63 | 63 64 | 64 65 | 65 66 | 66 67 | 67 68 | 68 69 | 69 70 | 70 71 | 71 72 | 72 73 | 73 74 | 74 75 | 75 76 | 76 77 | 77 78 | 78 79 | 79 80 | 80 81 | 81 82 | 82 83 | 83 84 | 84 85 | 85 86 | 86 87 | 87 88 | 88 89 | 89 90 | 90 91 | 91 92 | 92 93 | 93 94 | 94 95 | 95 96 | 96 97 | 97 98 | 98 99 | 99 100 | 100 101 | 101 102 | 102 103 | 103 104 | 104 105 | 105 106 | 106 107 | 107 108 | 108 109 | 109 110 | 110 111 | 111 112 | 112 113 | 113 114 | 114 115 | 115 116 | 116 117 | 117 118 | 118 119 | 119 120 | 120 121 | 121 122 | 122 123 | 123 124 | 124 125 | 125 126 | 126 127 | 127 128 | 128 129 | 129 130 | 130 131 | 131 132 | 132 133 | 133 134 | 134 135 | 135 136 | 136 137 | 137 138 | 138 139 | 139 140 | 140 141 | 141 142 | 142 143 | 143 144 | 144 145 | 145 146 | 146 147 | 147 148 | 148 149 | 149 150 | 150 151 | 151 152 | 152 153 | 153 154 | 154 155 | 155 156 | 156 157 | 157 158 | 158 159 | 159 160 | 160 161 | 161 162 | 162 163 | 163 164 | 164 165 | 165 166 | 166 167 | 167 168 | 168 169 | 169 170 | 170 171 | 171 172 | 172 173 | 173 174 | 174 175 | 175 176 | 176 177 | 177 178 | 178 179 | 179 180 | 180 181 | 181 182 | 182 183 | 183 184 | 184 185 | 185 186 | 186 187 | 187 188 | 188 189 | 189 190 | 190 191 | 191 192 | 192 193 | 193 194 | 194 195 | 195 196 | 196 197 | 197 198 | 198 199 | 199 200 | 200 201 | 201 202 | 202 203 | 203 204 | 204 205 | 205 206 | 206 207 | 207 208 | 208 209 | 209 210 | 210 211 | 211 212 | 212 213 | 213 214 | 214 215 | 215 216 | 216 217 | 217 218 | 218 219 | 219 220 | 220 221 | 221 222 | 222 223 | 223 224 | 224 225 | 225 226 | 226 227 | 227 228 | 228 229 | 229 230 | 230 231 | 231 232 | 232 233 | 233 234 | 234 235 | 235 236 | 236 237 | 237 238 | 238 239 | 239 240 | 240 241 | 241 242 | 242 243 | 243 244 | 244 245 | 245 246 | 246 247 | 247 248 | 248 249 | 249 250 | 250 251 | 251 252 | 252 253 | 253 254 | 254 255 | 255 256 | 256 257 | 257 258 | 258 259 | 259 260 | 260 261 | 261 262 | 262 263 | 263 264 | 264 265 | 265 266 | 266 267 | 267 268 | 268 269 | 269 270 | 270 271 | 271 272 | 272 273 | 273 274 | 274 275 | 275 276 | 276 277 | 277 278 | 278 279 | 279 280 | 280 281 | 281 282 | 282 283 | 283 284 | 284 285 | 285 286 | 286 287 | 287 288 | 288 289 | 289 290 | 290 291 | 291 292 | 292 293 | 293 294 | 294 295 | 295 296 | 296 297 | 297 298 | 298 299 | 299 300 | 300 301 | 301 302 | 302 303 | 303 304 | 304 305 | 305 306 | 306 307 | 307 308 | 308 309 | 309 310 | 310 311 | 311 312 | 312 313 | 313 314 | 314 315 | 315 316 | 316 317 | 317 318 | 318 319 | 319 320 | 320 321 | 321 322 | 322 323 | 323 324 | 324 325 | 325 326 | 326 327 | 327 328 | 328 329 | 329 330 | 330 331 | 331 332 | 332 333 | 333 334 | 334 335 | 335 336 | 336 337 | 337 338 | 338 339 | 339 340 | 340 341 | 341 342 | 342 343 | 343 344 | 344 345 | 345 346 | 346 347 | 347 348 | 348 349 | 349 350 | 350 351 | 351 352 | 352 353 | 353 354 | 354 355 | 355 356 | 356 357 | 357 358 | 358 359 | 359 360 | 360 361 | 361 362 | 362 363 | 363 364 | 364 365 | 365 366 | 366 367 | 367 368 | 368 369 | 369 370 | 370 371 | 371 372 | 372 373 | 373 374 | 374 375 | 375 376 | 376 377 | 377 378 | 378 379 | 379 380 | 380 381 | 381 382 | 382 383 | 383 384 | 384 385 | 385 386 | 386 387 | 387 388 | 388 389 | 389 390 | 390 391 | 391 392 | 392 393 | 393 394 | 394 395 | 395 396 | 396 397 | 397 398 | 398 399 | 399 400 | 400 401 | 401 402 | 402 403 | 403 404 | 404 405 | 405 406 | 406 407 | 407 408 | 408 409 | 409 410 | 410 411 | 411 412 | 412 413 | 413 414 | 414 415 | 415 416 | 416 417 | 417 418 | 418 419 | 419 420 | 420 421 | 421 422 | 422 423 | 423 424 | 424 425 | 425 426 | 426 427 | 427 428 | 428 429 | 429 430 | 430 431 | 431 432 | 432 433 | 433 434 | 434 435 | 435 436 | 436 437 | 437 438 | 438 439 | 439 440 | 440 441 | 441 442 | 442 443 | 443 444 | 444 445 | 445 446 | 446 447 | 447 448 | 448 449 | 449 450 | 450 451 | 451 452 | 452 453 | 453 454 | 454 455 | 455 456 | 456 457 | 457 458 | 458 459 | 459 460 | 460 461 | 461 462 | 462 463 | 463 464 | 464 465 | 465 466 | 466 467 | 467 468 | 468 469 | 469 470 | 470 471 | 471 472 | 472 473 | 473 474 | 474 475 | 475 476 | 476 477 | 477 478 | 478 479 | 479 480 | 480 481 | 481 482 | 482 483 | 483 484 | 484 485 | 485 486 | 486 487 | 487 488 | 488 489 | 489 490 | 490 491 | 491 492 | 492 493 | 493 494 | 494 495 | 495 496 | 496 497 | 497 498 | 498 499 | 499 500 | 500 501 | 501 502 | 502 503 | 503 504 | 504 505 | 505 506 | 506 507 | 507 508 | 508 509 | 509 510 | 510 511 | 511 512 | 512 513 | 513 514 | 514 515 | 515 516 | 516 517 | 517 518 | 518 519 | 519 520 | 520 521 | 521 522 | 522 523 | 523 524 | 524 525 | 525 526 | 526 527 | 527 528 | 528 529 | 529 530 | 530 531 | 531 532 | 532 533 | 533 534 | 534 535 | 535 536 | 536 537 | 537 538 | 538 539 | 539 540 | 540 541 | 541 542 | 542 543 | 543 544 | 544 545 | 545 546 | 546 547 | 547 548 | 548 549 | 549 550 | 550 551 | 551 552 | 552 553 | 553 554 | 554 555 | 555 556 | 556 557 | 557 558 | 558 559 | 559 560 | 560 561 | 561 562 | 562 563 | 563 564 | 564 565 | 565 566 | 566 567 | 567 568 | 568 569 | 569 570 | 570 571 | 571 572 | 572 573 | 573 574 | 574 575 | 575 576 | 576 577 | 577 578 | 578 579 | 579 580 | 580 581 | 581 582 | 582 583 | 583 584 | 584 585 | 585 586 | 586 587 | 587 588 | 588 589 | 589 590 | 590 591 | 591 592 | 592 593 | 593 594 | 594 595 | 595 596 | 596 597 | 597 598 | 598 599 | 599 600 | 600 601 | 601 602 | 602 603 | 603 604 | 604 605 | 605 606 | 606 607 | 607 608 | 608 609 | 609 610 | 610 611 | 611 612 | 612 613 | 613 614 | 614 615 | 615 616 | 616 617 | 617 618 | 618 619 | 619 620 | 620 621 | 621 622 | 622 623 | 623 624 | 624 625 | 625 626 | 626 627 | 627 628 | 628 629 | 629 630 | 630 631 | 631 632 | 632 633 | 633 634 | 634 635 | 635 636 | 636 637 | 637 638 | 638 639 | 639 640 | 640 641 | 641 642 | 642 643 | 643 644 | 644 645 | 645 646 | 646 647 | 647 648 | 648 649 | 649 650 | 650 651 | 651 652 | 652 653 | 653 654 | 654 655 | 655 656 | 656 657 | 657 658 | 658 659 | 659 660 | 660 661 | 661 662 | 662 663 | 663 664 | 664 665 | 665 666 | 666 667 | 667 668 | 668 669 | 669 670 | 670 671 | 671 672 | 672 673 | 673 674 | 674 675 | 675 676 | 676 677 | 677 678 | 678 679 | 679 680 | 680 681 | 681 682 | 682 683 | 683 684 | 684 685 | 685 686 | 686 687 | 687 688 | 688 689 | 689 690 | 690 691 | 691 692 | 692 693 | 693 694 | 694 695 | 695 696 | 696 697 | 697 698 | 698 699 | 699 700 | 700 701 | 701 702 | 702 703 | 703 704 | 704 705 | 705 706 | 706 707 | 707 708 | 708 709 | 709 710 | 710 711 | 711 712 | 712 713 | 713 714 | 714 715 | 715 716 | 716 717 | 717 718 | 718 719 | 719 720 | 720 721 | 721 722 | 722 723 | 723 724 | 724 725 | 725 726 | 726 727 | 727 728 | 728 729 | 729 730 | 730 731 | 731 732 | 732 733 | 733 734 | 734 735 | 735 736 | 736 737 | 737 738 | 738 739 | 739 740 | 740 741 | 741 742 | 742 743 | 743 744 | 744 745 | 745 746 | 746 747 | 747 748 | 748 749 | 749 750 | 750 751 | 751 752 | 752 753 | 753 754 | 754 755 | 755 756 | 756 757 | 757 758 | 758 759 | 759 760 | 760 761 | 761 762 | 762 763 | 763 764 | 764 765 | 765 766 | 766 767 | 767 768 | 768 769 | 769 770 | 770 771 | 771 772 | 772 773 | 773 774 | 774 775 | 775 776 | 776 777 | 777 778 | 778 779 | 779 780 | 780 781 | 781 782 | 782 783 | 783 784 | 784 785 | 785 786 | 786 787 | 787 788 | 788 789 | 789 790 | 790 791 | 791 792 | 792 793 | 793 794 | 794 795 | 795 796 | 796 797 | 797 798 | 798 799 | 799 800 | 800 801 | 801 802 | 802 803 | 803 804 | 804 805 | 805 806 | 806 807 | 807 808 | 808 809 | 809 810 | 810 811 | 811 812 | 812 813 | 813 814 | 814 815 | 815 816 | 816 817 | 817 818 | 818 819 | 819 820 | 820 821 | 821 822 | 822 823 | 823 824 | 824 825 | 825 826 | 826 827 | 827 828 | 828 829 | 829 830 | 830 831 | 831 832 | 832 833 | 833 834 | 834 835 | 835 836 | 836 837 | 837 838 | 838 839 | 839 840 | 840 841 | 841 842 | 842 843 | 843 844 | 844 845 | 845 846 | 846 847 | 847 848 | 848 849 | 849 850 | 850 851 | 851 852 | 852 853 | 853 854 | 854 855 | 855 856 | 856 857 | 857 858 | 858 859 | 859 860 | 860 861 | 861 862 | 862 863 | 863 864 | 864 865 | 865 866 | 866 867 | 867 868 | 868 869 | 869 870 | 870 871 | 871 872 | 872 873 | 873 874 | 874 875 | 875 876 | 876 877 | 877 878 | 878 879 | 879 880 | 880 881 | 881 882 | 882 883 | 883 884 | 884 885 | 885 886 | 886 887 | 887 888 | 888 889 | 889 890 | 890 891 | 891 892 | 892 893 | 893 894 | 894 895 | 895 896 | 896 897 | 897 898 | 898 899 | 899 900 | 900 901 | 901 902 | 902 903 | 903 904 | 904 905 | 905 906 | 906 907 | 907 908 | 908 909 | 909 910 | 910 911 | 911 912 | 912 913 | 913 914 | 914 915 | 915 916 | 916 917 | 917 918 | 918 919 | 919 920 | 920 921 | 921 922 | 922 923 | 923 924 | 924 925 | 925 926 | 926 927 | 927 928 | 928 929 | 929 930 | 930 931 | 931 932 | 932 933 | 933 934 | 934 935 | 935 936 | 936 937 | 937 938 | 938 939 | 939 940 | 940 941 | 941 942 | 942 943 | 943 944 | 944 945 | 945 946 | 946 947 | 947 948 | 948 949 | 949 950 | 950 951 | 951 952 | 952 953 | 953 954 | 954 955 | 955 956 | 956 957 | 957 958 | 958 959 | 959 960 | 960 961 | 961 962 | 962 963 | 963 964 | 964 965 | 965 966 | 966 967 | 967 968 | 968 969 | 969 970 | 970 971 | 971 972 | 972 973 | 973 974 | 974 975 | 975 976 | 976 977 | 977 978 | 978 979 | 979 980 | 980 981 | 981 982 | 982 983 | 983 984 | 984 985 | 985 986 | 986 987 | 987 988 | 988 989 | 989 990 | 990 991 | 991 992 | 992 993 | 993 994 | 994 995 | 995 996 | 996 997 | 997 998 | 998 999 | 999 1000 | 1000 1001 | 1001 1002 | 1002 1003 | 1003 1004 | 1004 1005 | 1005 1006 | 1006 1007 | 1007 1008 | 1008 1009 | 1009 1010 | 1010 1011 | 1011 1012 | 1012 1013 | 1013 1014 | 1014 1015 | 1015 1016 | 1016 1017 | 1017 1018 | 1018 1019 | 1019 1020 | 1020 1021 | 1021 1022 | 1022 1023 | 1023 1024 | 1024 1025 | 1025 1026 | 1026 1027 | 1027 1028 | 1028 1029 | 1029 1030 | 1030 1031 | 1031 1032 | 1032 1033 | 1033 1034 | 1034 1035 | 1035 1036 | 1036 1037 | 1037 1038 | 1038 1039 | 1039 1040 | 1040 1041 | 1041 1042 | 1042 1043 | 1043 1044 | 1044 1045 | 1045 1046 | 1046 1047 | 1047 1048 | 1048 1049 | 1049 1050 | 1050 1051 | 1051 1052 | 1052 1053 | 1053 1054 | 1054 1055 | 1055 1056 | 1056 1057 | 1057 1058 | 1058 1059 | 1059 1060 | 1060 1061 | 1061 1062 | 1062 1063 | 1063 1064 | 1064 1065 | 1065 1066 | 1066 1067 | 1067 1068 | 1068 1069 | 1069 1070 | 1070 1071 | 1071 1072 | 1072 1073 | 1073 1074 | 1074 1075 | 1075 1076 | 1076 1077 | 1077 1078 | 1078 1079 | 1079 1080 | 1080 1081 | 1081 1082 | 1082 1083 | 1083 1084 | 1084 1085 | 1085 1086 | 1086 1087 | 1087 1088 | 1088 1089 | 1089 1090 | 1090 1091 | 1091 1092 | 1092 1093 | 1093 1094 | 1094 1095 | 1095 1096 | 1096 1097 | 1097 1098 | 1098 1099 | 1099 1100 | 1100 1101 | 1101 1102 | 1102 1103 | 1103 1104 | 1104 1105 | 1105 1106 | 1106 1107 | 1107 1108 | 1108 1109 | 1109 1110 | 1110 1111 | 1111 1112 | 1112 1113 | 1113 1114 | 1114 1115 | 1115 1116 | 1116 1117 | 1117 1118 | 1118 1119 | 1119 1120 | 1120 1121 | 1121 1122 | 1122 1123 | 1123 1124 | 1124 1125 | 1125 1126 | 1126 1127 | 1127 1128 | 1128 1129 | 1129 1130 | 1130 1131 | 1131 1132 | 1132 1133 | 1133 1134 | 1134 1135 | 1135 1136 | 1136 1137 | 1137 1138 | 1138 1139 | 1139 1140 | 1140 1141 | 1141 1142 | 1142 1143 | 1143 1144 | 1144 1145 | 1145 1146 | 1146 1147 | 1147 1148 | 1148 1149 | 1149 1150 | 1150 1151 | 1151 1152 | 1152 1153 | 1153 1154 | 1154 1155 | 1155 1156 | 1156 1157 | 1157 1158 | 1158 1159 | 1159 1160 | 1160 1161 | 1161 1162 | 1162 1163 | 1163 1164 | 1164 1165 | 1165 1166 | 1166 1167 | 1167 1168 | 1168 1169 | 1169 1170 | 1170 1171 | 1171 1172 | 1172 1173 | 1173 1174 | 1174 1175 | 1175 1176 | 1176 1177 | 1177 1178 | 1178 1179 | 1179 1180 | 1180 1181 | 1181 1182 | 1182 1183 | 1183 1184 | 1184 1185 | 1185 1186 | 1186 1187 | 1187 1188 | 1188 1189 | 1189 1190 | 1190 1191 | 1191 1192 | 1192 1193 | 1193 1194 | 1194 1195 | 1195 1196 | 1196 1197 | 1197 1198 | 1198 1199 | 1199 1200 | 1200 1201 | 1201 1202 | 1202 1203 | 1203 1204 | 1204 1205 | 1205 1206 | 1206 1207 | 1207 1208 | 1208 1209 | 1209 1210 | 1210 1211 | 1211 1212 | 1212 1213 | 1213 1214 | 1214 1215 | 1215 1216 | 1216 1217 | 1217 1218 | 1218 1219 | 1219 1220 | 1220 1221 | 1221 1222 | 1222 1223 | 1223 1224 | 1224 1225 | 1225 1226 | 1226 1227 | 1227 1228 | 1228 1229 | 1229 1230 | 1230 1231 | 1231 1232 | 1232 1233 | 1233 1234 | 1234 1235 | 1235 1236 | 1236 1237 | 1237 1238 | 1238 1239 | 1239 1240 | 1240 1241 | 1241 1242 | 1242 1243 | 1243 1244 | 1244 1245 | 1245 1246 | 1246 1247 | 1247 1248 | 1248 1249 | 1249 1250 | 1250 1251 | 1251 1252 | 1252 1253 | 1253 1254 | 1254 1255 | 1255 1256 | 1256 1257 | 1257 1258 | 1258 1259 | 1259 1260 | 1260 1261 | 1261 1262 | 1262 1263 | 1263 1264 | 1264 1265 | 1265 1266 | 1266 1267 | 1267 1268 | 1268 1269 | 1269 1270 | 1270 1271 | 1271 1272 | 1272 1273 | 1273 1274 | 1274 1275 | 1275 1276 | 1276 1277 | 1277 1278 | 1278 1279 | 1279 1280 | 1280 1281 | 1281 1282 | 1282 1283 | 1283 1284 | 1284 1285 | 1285 1286 | 1286 1287 | 1287 1288 | 1288 1289 | 1289 1290 | 1290 1291 | 1291 1292 | 1292 1293 | 1293 1294 | 1294 1295 | 1295 1296 | 1296 1297 | 1297 1298 | 1298 1299 | 1299 1300 | 1300 1301 | 1301 1302 | 1302 1303 | 1303 1304 | 1304 1305 | 1305 1306 | 1306 1307 | 1307 1308 | 1308 1309 | 1309 1310 | 1310 1311 | 1311 1312 | 1312 1313 | 1313 1314 | 1314 1315 | 1315 1316 | 1316 1317 | 1317 1318 | 1318 1319 | 1319 1320 | 1320 1321 | 1321 1322 | 1322 1323 | 1323 1324 | 1324 1325 | 1325 1326 | 1326 1327 | 1327 1328 | 1328 1329 | 1329 1330 | 1330 1331 | 1331 1332 | 1332 1333 | 1333 1334 | 1334 1335 | 1335 1336 | 1336 1337 | 1337 1338 | 1338 1339 | 1339 1340 | 1340 1341 | 1341 1342 | 1342 1343 | 1343 1344 | 1344 1345 | 1345 1346 | 1346 1347 | 1347 1348 | 1348 1349 | 1349 1350 | 1350 1351 | 1351 1352 | 1352 1353 | 1353 1354 | 1354 1355 | 1355 1356 | 1356 1357 | 1357 1358 | 1358 1359 | 1359 1360 | 1360 1361 | 1361 1362 | 1362 1363 | 1363 1364 | 1364 1365 | 1365 1366 | 1366 1367 | 1367 1368 | 1368 1369 | 1369 1370 | 1370 1371 | 1371 1372 | 1372 1373 | 1373 1374 | 1374 1375 | 1375 1376 | 1376 1377 | 1377 1378 | 1378 1379 | 1379 1380 | 1380 1381 | 1381 1382 | 1382 1383 | 1383 1384 | 1384 1385 | 1385 1386 | 1386 1387 | 1387 1388 | 1388 1389 | 1389 1390 | 1390 1391 | 1391 1392 | 1392 1393 | 1393 1394 | 1394 1395 | 1395 1396 | 1396 1397 | 1397 1398 | 1398 1399 | 1399 1400 | 1400 1401 | 1401 1402 | 1402 1403 | 1403 1404 | 1404 1405 | 1405 1406 | 1406 1407 | 1407 1408 | 1408 1409 | 1409 1410 | 1410 1411 | 1411 1412 | 1412 1413 | 1413 1414 | 1414 1415 | 1415 1416 | 1416 1417 | 1417 1418 | 1418 1419 | 1419 1420 | 1420 1421 | 1421 1422 | 1422 1423 | 1423 1424 | 1424 1425 | 1425 1426 | 1426 1427 | 1427 1428 | 1428 1429 | 1429 1430 | 1430 1431 | 1431 1432 | 1432 1433 | 1433 1434 | 1434 1435 | 1435 1436 | 1436 1437 | 1437 1438 | 1438 1439 | 1439 1440 | 1440 1441 | 1441 1442 | 1442 1443 | 1443 1444 | 1444 1445 | 1445 1446 | 1446 1447 | 1447 1448 | 1448 1449 | 1449 1450 | 1450 1451 | 1451 1452 | 1452 1453 | 1453 1454 | 1454 1455 | 1455 1456 | 1456 1457 | 1457 1458 | 1458 1459 | 1459 1460 | 1460 1461 | 1461 1462 | 1462 1463 | 1463 1464 | 1464 1465 | 1465 1466 | 1466 1467 | 1467 1468 | 1468 1469 | 1469 1470 | 1470 1471 | 1471 1472 | 1472 1473 | 1473 1474 | 1474 1475 | 1475 1476 | 1476 1477 | 1477 1478 | 1478 1479 | 1479 1480 | 1480 1481 | 1481 1482 | 1482 1483 | 1483 1484 | 1484 1485 | 1485 1486 | 1486 1487 | 1487 1488 | 1488 1489 | 1489 1490 | 1490 1491 | 1491 1492 | 1492 1493 | 1493 1494 | 1494 1495 | 1495 1496 | 1496 1497 | 1497 1498 | 1498 1499 | 1499 1500 | 1500 1501 | 1501 1502 | 1502 1503 | 1503 1504 | 1504 1505 | 1505 1506 | 1506 1507 | 1507 1508 | 1508 1509 | 1509 1510 | 1510 1511 | 1511 1512 | 1512 1513 | 1513 1514 | 1514 1515 | 1515 1516 | 1516 1517 | 1517 1518 | 1518 1519 | 1519 1520 | 1520 1521 | 1521 1522 | 1522 1523 | 1523 1524 | 1524 1525 | 1525 1526 | 1526 1527 | 1527 1528 | 1528 1529 | 1529 1530 | 1530 1531 | 1531 1532 | 1532 1533 | 1533 1534 | 1534 1535 | 1535 1536 | 1536 1537 | 1537 1538 | 1538 1539 | 1539 1540 | 1540 1541 | 1541 1542 | 1542 1543 | 1543 1544 | 1544 1545 | 1545 1546 | 1546 1547 | 1547 1548 | 1548 1549 | 1549 1550 | 1550 1551 | 1551 1552 | 1552 1553 | 1553 1554 | 1554 1555 | 1555 1556 | 1556 1557 | 1557 1558 | 1558 1559 | 1559 1560 | 1560 1561 | 1561 1562 | 1562 1563 | 1563 1564 | 1564 1565 | 1565 1566 | 1566 1567 | 1567 1568 | 1568 1569 | 1569 1570 | 1570 1571 | 1571 1572 | 1572 1573 | 1573 1574 | 1574 1575 | 1575 1576 | 1576 1577 | 1577 1578 | 1578 1579 | 1579 1580 | 1580 1581 | 1581 1582 | 1582 1583 | 1583 1584 | 1584 1585 | 1585 1586 | 1586 1587 | 1587 1588 | 1588 1589 | 1589 1590 | 1590 1591 | 1591 1592 | 1592 1593 | 1593 1594 | 1594 1595 | 1595 1596 | 1596 1597 | 1597 1598 | 1598 1599 | 1599 1600 | 1600 1601 | 1601 1602 | 1602 1603 | 1603 1604 | 1604 1605 | 1605 1606 | 1606 1607 | 1607 1608 | 1608 1609 | 1609 1610 | 1610 1611 | 1611 1612 | 1612 1613 | 1613 1614 | 1614 1615 | 1615 1616 | 1616 1617 | 1617 1618 | 1618 1619 | 1619 1620 | 1620 1621 | 1621 1622 | 1622 1623 | 1623 1624 | 1624 1625 | 1625 1626 | 1626 1627 | 1627 1628 | 1628 1629 | 1629 1630 | 1630 1631 | 1631 1632 | 1632 1633 | 1633 1634 | 1634 1635 | 1635 1636 | 1636 1637 | 1637 1638 | 1638 1639 | 1639 1640 | 1640 1641 | 1641 1642 | 1642 1643 | 1643 1644 | 1644 1645 | 1645 1646 | 1646 1647 | 1647 1648 | 1648 1649 | 1649 1650 | 1650 1651 | 1651 1652 | 1652 1653 | 1653 1654 | 1654 1655 | 1655 1656 | 1656 1657 | 1657 1658 | 1658 1659 | 1659 1660 | 1660 1661 | 1661 1662 | 1662 1663 | 1663 1664 | 1664 1665 | 1665 1666 | 1666 1667 | 1667 1668 | 1668 1669 | 1669 1670 | 1670 1671 | 1671 1672 | 1672 1673 | 1673 1674 | 1674 1675 | 1675 1676 | 1676 1677 | 1677 1678 | 1678 1679 | 1679 1680 | 1680 1681 | 1681 1682 | 1682 1683 | 1683 1684 | 1684 1685 | 1685 1686 | 1686 1687 | 1687 1688 | 1688 1689 | 1689 1690 | 1690 1691 | 1691 1692 | 1692 1693 | 1693 1694 | 1694 1695 | 1695 1696 | 1696 1697 | 1697 1698 | 1698 1699 | 1699 1700 | 1700 1701 | 1701 1702 | 1702 1703 | 1703 1704 | 1704 1705 | 1705 1706 | 1706 1707 | 1707 1708 | 1708 1709 | 1709 1710 | 1710 1711 | 1711 1712 | 1712 1713 | 1713 1714 | 1714 1715 | 1715 1716 | 1716 1717 | 1717 1718 | 1718 1719 | 1719 1720 | 1720 1721 | 1721 1722 | 1722 1723 | 1723 1724 | 1724 1725 | 1725 1726 | 1726 1727 | 1727 1728 | 1728 1729 | 1729 1730 | 1730 1731 | 1731 1732 | 1732 1733 | 1733 1734 | 1734 1735 | 1735 1736 | 1736 1737 | 1737 1738 | 1738 1739 | 1739 1740 | 1740 1741 | 1741 1742 | 1742 1743 | 1743 1744 | 1744 1745 | 1745 1746 | 1746 1747 | 1747 1748 | 1748 1749 | 1749 1750 | 1750 1751 | 1751 1752 | 1752 1753 | 1753 1754 | 1754 1755 | 1755 1756 | 1756 1757 | 1757 1758 | 1758 1759 | 1759 1760 | 1760 1761 | 1761 1762 | 1762 1763 | 1763 1764 | 1764 1765 | 1765 1766 | 1766 1767 | 1767 1768 | 1768 1769 | 1769 1770 | 1770 1771 | 1771 1772 | 1772 1773 | 1773 1774 | 1774 1775 | 1775 1776 | 1776 1777 | 1777 1778 | 1778 1779 | 1779 1780 | 1780 1781 | 1781 1782 | 1782 1783 | 1783 1784 | 1784 1785 | 1785 1786 | 1786 1787 | 1787 1788 | 1788 1789 | 1789 1790 | 1790 1791 | 1791 1792 | 1792 1793 | 1793 1794 | 1794 1795 | 1795 1796 | 1796 1797 | 1797 1798 | 1798 1799 | 1799 1800 | 1800 1801 | 1801 1802 | 1802 1803 | 1803 1804 | 1804 1805 | 1805 1806 | 1806 1807 | 1807 1808 | 1808 1809 | 1809 1810 | 1810 1811 | 1811 1812 | 1812 1813 | 1813 1814 | 1814 1815 | 1815 1816 | 1816 1817 | 1817 1818 | 1818 1819 | 1819 1820 | 1820 1821 | 1821 1822 | 1822 1823 | 1823 1824 | 1824 1825 | 1825 1826 | 1826 1827 | 1827 1828 | 1828 1829 | 1829 1830 | 1830 1831 | 1831 1832 | 1832 1833 | 1833 1834 | 1834 1835 | 1835 1836 | 1836 1837 | 1837 1838 | 1838 1839 | 1839 1840 | 1840 1841 | 1841 1842 | 1842 1843 | 1843 1844 | 1844 1845 | 1845 1846 | 1846 1847 | 1847 1848 | 1848 1849 | 1849 1850 | 1850 1851 | 1851 1852 | 1852 1853 | 1853 1854 | 1854 1855 | 1855 1856 | 1856 1857 | 1857 1858 | 1858 1859 | 1859 1860 | 1860 1861 | 1861 1862 | 1862 1863 | 1863 1864 | 1864 1865 | 1865 1866 | 1866 1867 | 1867 1868 | 1868 1869 | 1869 1870 | 1870 1871 | 1871 1872 | 1872 1873 | 1873 1874 | 1874 1875 | 1875 1876 | 1876 1877 | 1877 1878 | 1878 1879 | 1879 1880 | 1880 1881 | 1881 1882 | 1882 1883 | 1883 1884 | 1884 1885 | 1885 1886 | 1886 1887 | 1887 1888 | 1888 1889 | 1889 1890 | 1890 1891 | 1891 1892 | 1892 1893 | 1893 1894 | 1894 1895 | 1895 1896 | 1896 1897 | 1897 1898 | 1898 1899 | 1899 1900 | 1900 1901 | 1901 1902 | 1902 1903 | 1903 1904 | 1904 1905 | 1905 1906 | 1906 1907 | 1907 1908 | 1908 1909 | 1909 1910 | 1910 1911 | 1911 1912 | 1912 1913 | 1913 1914 | 1914 1915 | 1915 1916 | 1916 1917 | 1917 1918 | 1918 1919 | 1919 1920 | 1920 1921 | 1921 1922 | 1922 1923 | 1923 1924 | 1924 1925 | 1925 1926 | 1926 1927 | 1927 1928 | 1928 1929 | 1929 1930 | 1930 1931 | 1931 1932 | 1932 1933 | 1933 1934 | 1934 1935 | 1935 1936 | 1936 1937 | 1937 1938 | 1938 1939 | 1939 1940 | 1940 1941 | 1941 1942 | 1942 1943 | 1943 1944 | 1944 1945 | 1945 1946 | 1946 1947 | 1947 1948 | 1948 1949 | 1949 1950 | 1950 1951 | 1951 1952 | 1952 1953 | 1953 1954 | 1954 1955 | 1955 1956 | 1956 1957 | 1957 1958 | 1958 1959 | 1959 1960 | 1960 1961 | 1961 1962 | 1962 1963 | 1963 1964 | 1964 1965 | 1965 1966 | 1966 1967 | 1967 1968 | 1968 1969 | 1969 1970 | 1970 1971 | 1971 1972 | 1972 1973 | 1973 1974 | 1974 1975 | 1975 1976 | 1976 1977 | 1977 1978 | 1978 1979 | 1979 1980 | 1980 1981 | 1981 1982 | 1982 1983 | 1983 1984 | 1984 1985 | 1985 1986 | 1986 1987 | 1987 1988 | 1988 1989 | 1989 1990 | 1990 1991 | 1991 1992 | 1992 1993 | 1993 1994 | 1994 1995 | 1995 1996 | 1996 1997 | 1997 1998 | 1998 1999 | 1999 2000 | 2000 2001 | 2001 2002 | 2002 2003 | 2003 2004 | 2004 2005 | 2005 2006 | 2006 2007 | 2007 2008 | 2008 2009 | 2009 2010 | 2010 2011 | 2011 2012 | 2012 2013 | 2013 2014 | 2014 2015 | 2015 2016 | 2016 2017 | 2017 2018 | 2018 2019 | 2019 2020 | 2020 2021 | 2021 2022 | 2022 2023 | 2023 2024 | 2024 2025 | 2025 2026 | 2026 2027 | 2027 2028 | 2028 2029 | 2029 2030 | 2030 2031 | 2031 2032 | 2032 2033 | 2033 2034 | 2034 2035 | 2035 2036 | 2036 2037 | 2037 2038 | 2038 2039 | 2039 2040 | 2040 2041 | 2041 2042 | 2042 2043 | 2043 2044 | 2044 2045 | 2045 2046 | 2046 2047 | 2047 2048 | 2048 2049 | 2049 2050 | 2050 2051 | 2051 2052 | 2052 2053 | 2053 2054 | 2054 2055 | 2055 2056 | 2056 2057 | 2057 2058 | 2058 2059 | 2059 2060 | 2060 2061 | 2061 2062 | 2062 2063 | 2063 2064 | 2064 2065 | 2065 2066 | 2066 2067 | 2067 2068 | 2068 2069 | 2069 2070 | 2070 2071 | 2071 2072 | 2072 2073 | 2073 2074 | 2074 2075 | 2075 2076 | 2076 2077 | 2077 2078 | 2078 2079 | 2079 2080 | 2080 2081 | 2081 2082 | 2082 2083 | 2083 2084 | 2084 2085 | 2085 2086 | 2086 2087 | 2087 2088 | 2088 2089 | 2089 2090 | 2090 2091 | 2091 2092 | 2092 2093 | 2093 2094 | 2094 2095 | 2095 2096 | 2096 2097 | 2097 2098 | 2098 2099 | 2099 2100 | 2100 2101 | 2101 2102 | 2102 2103 | 2103 2104 | 2104 2105 | 2105 2106 | 2106 2107 | 2107 2108 | 2108 2109 | 2109 2110 | 2110 2111 | 2111 2112 | 2112 2113 | 2113 2114 | 2114 2115 | 2115 2116 | 2116 2117 | 2117 2118 | 2118 2119 | 2119 2120 | 2120 2121 | 2121 2122 | 2122 2123 | 2123 2124 | 2124 2125 | 2125 2126 | 2126 2127 | 2127 2128 | 2128 2129 | 2129 2130 | 2130 2131 | 2131 2132 | 2132 2133 | 2133 2134 | 2134 2135 | 2135 2136 | 2136 2137 | 2137 2138 | 2138 2139 | 2139 2140 | 2140 2141 | 2141 2142 | 2142 2143 | 2143 2144 | 2144 2145 | 2145 2146 | 2146 2147 | 2147 2148 | 2148 2149 | 2149 2150 | 2150 2151 | 2151 2152 | 2152 2153 | 2153 2154 | 2154 2155 | 2155 2156 | 2156 2157 | 2157 2158 | 2158 2159 | 2159 2160 | 2160 2161 | 2161 2162 | 2162 2163 | 2163 2164 | 2164 2165 | 2165 2166 | 2166 2167 | 2167 2168 | 2168 2169 | 2169 2170 | 2170 2171 | 2171 2172 | 2172 2173 | 2173 2174 | 2174 2175 | 2175 2176 | 2176 2177 | 2177 2178 | 2178 2179 | 2179 2180 | 2180 2181 | 2181 2182 | 2182 2183 | 2183 2184 | 2184 2185 | 2185 2186 | 2186 2187 | 2187 2188 | 2188 2189 | 2189 2190 | 2190 2191 | 2191 2192 | 2192 2193 | 2193 2194 | 2194 2195 | 2195 2196 | 2196 2197 | 2197 2198 | 2198 2199 | 2199 2200 | 2200 2201 | 2201 2202 | 2202 2203 | 2203 2204 | 2204 2205 | 2205 2206 | 2206 2207 | 2207 2208 | 2208 2209 | 2209 2210 | 2210 2211 | 2211 2212 | 2212 2213 | 2213 2214 | 2214 2215 | 2215 2216 | 2216 2217 | 2217 2218 | 2218 2219 | 2219 2220 | 2220 2221 | 2221 2222 | 2222 2223 | 2223 2224 | 2224 2225 | 2225 2226 | 2226 2227 | 2227 2228 | 2228 2229 | 2229 2230 | 2230 2231 | 2231 2232 | 2232 2233 | 2233 2234 | 2234 2235 | 2235 2236 | 2236 2237 | 2237 2238 | 2238 2239 | 2239 2240 | 2240 2241 | 2241 2242 | 2242 2243 | 2243 2244 | 2244 2245 | 2245 2246 | 2246 2247 | 2247 2248 | 2248 2249 | 2249 2250 | 2250 2251 | 2251 2252 | 2252 2253 | 2253 2254 | 2254 2255 | 2255 2256 | 2256 2257 | 2257 2258 | 2258 2259 | 2259 2260 | 2260 2261 | 2261 2262 | 2262 2263 | 2263 2264 | 2264 2265 | 2265 2266 | 2266 2267 | 2267 2268 | 2268 2269 | 2269 2270 | 2270 2271 | 2271 2272 | 2272 2273 | 2273 2274 | 2274 2275 | 2275 2276 | 2276 2277 | 2277 2278 | 2278 2279 | 2279 2280 | 2280 2281 | 2281 2282 | 2282 2283 | 2283 2284 | 2284 2285 | 2285 2286 | 2286 2287 | 2287 2288 | 2288 2289 | 2289 2290 | 2290 2291 | 2291 2292 | 2292 2293 | 2293 2294 | 2294 2295 | 2295 2296 | 2296 2297 | 2297 2298 | 2298 2299 | 2299 2300 | 2300 2301 | 2301 2302 | 2302 2303 | 2303 2304 | 2304 2305 | 2305 2306 | 2306 2307 | 2307 2308 | 2308 2309 | 2309 2310 | 2310 2311 | 2311 2312 | 2312 2313 | 2313 2314 | 2314 2315 | 2315 2316 | 2316 2317 | 2317 2318 | 2318 2319 | 2319 2320 | 2320 2321 | 2321 2322 | 2322 2323 | 2323 2324 | 2324 2325 | 2325 2326 | 2326 2327 | 2327 2328 | 2328 2329 | 2329 2330 | 2330 2331 | 2331 2332 | 2332 2333 | 2333 2334 | 2334 2335 | 2335 2336 | 2336 2337 | 2337 2338 | 2338 2339 | 2339 2340 | 2340 2341 | 2341 2342 | 2342 2343 | 2343 2344 | 2344 2345 | 2345 2346 | 2346 2347 | 2347 2348 | 2348 2349 | 2349 2350 | 2350 2351 | 2351 2352 | 2352 2353 | 2353 2354 | 2354 2355 | 2355 2356 | 2356 2357 | 2357 2358 | 2358 2359 | 2359 2360 | 2360 2361 | 2361 2362 | 2362 2363 | 2363 2364 | 2364 2365 | 2365 2366 | 2366 2367 | 2367 2368 | 2368 2369 | 2369 2370 | 2370 2371 | 2371 2372 | 2372 2373 | 2373 2374 | 2374 2375 | 2375 2376 | 2376 2377 | 2377 2378 | 2378 2379 | 2379 2380 | 2380 2381 | 2381 2382 | 2382 2383 | 2383 2384 | 2384 2385 | 2385 2386 | 2386 2387 | 2387 2388 | 2388 2389 | 2389 2390 | 2390 2391 | 2391 2392 | 2392 2393 | 2393 2394 | 2394 2395 | 2395 2396 | 2396 2397 | 2397 2398 | 2398 2399 | 2399 2400 | 2400 2401 | 2401 2402 | 2402 2403 | 2403 2404 | 2404 2405 | 2405 2406 | 2406 2407 | 2407 2408 | 2408 2409 | 2409 2410 | 2410 2411 | 2411 2412 | 2412 2413 | 2413 2414 | 2414 2415 | 2415 2416 | 2416 2417 | 2417 2418 | 2418 2419 | 2419 2420 | 2420 2421 | 2421 2422 | 2422 2423 | 2423 2424 | 2424 2425 | 2425 2426 | 2426 2427 | 2427 2428 | 2428 2429 | 2429 2430 | 2430 2431 | 2431 2432 | 2432 2433 | 2433 2434 | 2434 2435 | 2435 2436 | 2436 2437 | 2437 2438 | 2438 2439 | 2439 2440 | 2440 2441 | 2441 2442 | 2442 2443 | 2443 2444 | 2444 2445 | 2445 2446 | 2446 2447 | 2447 2448 | 2448 2449 | 2449 2450 | 2450 2451 | 2451 2452 | 2452 2453 | 2453 2454 | 2454 2455 | 2455 2456 | 2456 2457 | 2457 2458 | 2458 2459 | 2459 2460 | 2460 2461 | 2461 2462 | 2462 2463 | 2463 2464 | 2464 2465 | 2465 2466 | 2466 2467 | 2467 2468 | 2468 2469 | 2469 2470 | 2470 2471 | 2471 2472 | 2472 2473 | 2473 2474 | 2474 2475 | 2475 2476 | 2476 2477 | 2477 2478 | 2478 2479 | 2479 2480 | 2480 2481 | 2481 2482 | 2482 2483 | 2483 2484 | 2484 2485 | 2485 2486 | 2486 2487 | 2487 2488 | 2488 2489 | 2489 2490 | 2490 2491 | 2491 2492 | 2492 2493 | 2493 2494 | 2494 2495 | 2495 2496 | 2496 2497 | 2497 2498 | 2498 2499 | 2499 2500 | 2500 2501 | 2501 2502 | 2502 2503 | 2503 2504 | 2504 2505 | 2505 2506 | 2506 2507 | 2507 2508 | 2508 2509 | 2509 2510 | 2510 2511 | 2511 2512 | 2512 2513 | 2513 2514 | 2514 2515 | 2515 2516 | 2516 2517 | 2517 2518 | 2518 2519 | 2519 2520 | 2520 2521 | 2521 2522 | 2522 2523 | 2523 2524 | 2524 2525 | 2525 2526 | 2526 2527 | 2527 2528 | 2528 2529 | 2529 2530 | 2530 2531 | 2531 2532 | 2532 2533 | 2533 2534 | 2534 2535 | 2535 2536 | 2536 2537 | 2537 2538 | 2538 2539 | 2539 2540 | 2540 2541 | 2541 2542 | 2542 2543 | 2543 2544 | 2544 2545 | 2545 2546 | 2546 2547 | 2547 2548 | 2548 2549 | 2549 2550 | 2550 2551 | 2551 2552 | 2552 2553 | 2553 2554 | 2554 2555 | 2555 2556 | 2556 2557 | 2557 2558 | 2558 2559 | 2559 2560 | 2560 2561 | 2561 2562 | 2562 2563 | 2563 2564 | 2564 2565 | 2565 2566 | 2566 2567 | 2567 2568 | 2568 2569 | 2569 2570 | 2570 2571 | 2571 2572 | 2572 2573 | 2573 2574 | 2574 2575 | 2575 2576 | 2576 2577 | 2577 2578 | 2578 2579 | 2579 2580 | 2580 2581 | 2581 2582 | 2582 2583 | 2583 2584 | 2584 2585 | 2585 2586 | 2586 2587 | 2587 2588 | 2588 2589 | 2589 2590 | 2590 2591 | 2591 2592 | 2592 2593 | 2593 2594 | 2594 2595 | 2595 2596 | 2596 2597 | 2597 2598 | 2598 2599 | 2599 2600 | 2600 2601 | 2601 2602 | 2602 2603 | 2603 2604 | 2604 2605 | 2605 2606 | 2606 2607 | 2607 2608 | 2608 2609 | 2609 2610 | 2610 2611 | 2611 2612 | 2612 2613 | 2613 2614 | 2614 2615 | 2615 2616 | 2616 2617 | 2617 2618 | 2618 2619 | 2619 2620 | 2620 2621 | 2621 2622 | 2622 2623 | 2623 2624 | 2624 2625 | 2625 2626 | 2626 2627 | 2627 2628 | 2628 2629 | 2629 2630 | 2630 2631 | 2631 2632 | 2632 2633 | 2633 2634 | 2634 2635 | 2635 2636 | 2636 2637 | 2637 2638 | 2638 2639 | 2639 2640 | 2640 2641 | 2641 2642 | 2642 2643 | 2643 2644 | 2644 2645 | 2645 2646 | 2646 2647 | 2647 2648 | 2648 2649 | 2649 2650 | 2650 2651 | 2651 2652 | 2652 2653 | 2653 2654 | 2654 2655 | 2655 2656 | 2656 2657 | 2657 2658 | 2658 2659 | 2659 2660 | 2660 2661 | 2661 2662 | 2662 2663 | 2663 2664 | 2664 2665 | 2665 2666 | 2666 2667 | 2667 2668 | 2668 2669 | 2669 2670 | 2670 2671 | 2671 2672 | 2672 2673 | 2673 2674 | 2674 2675 | 2675 2676 | 2676 2677 | 2677 2678 | 2678 2679 | 2679 2680 | 2680 2681 | 2681 2682 | 2682 2683 | 2683 2684 | 2684 2685 | 2685 2686 | 2686 2687 | 2687 2688 | 2688 2689 | 2689 2690 | 2690 2691 | 2691 2692 | 2692 2693 | 2693 2694 | 2694 2695 | 2695 2696 | 2696 2697 | 2697 2698 | 2698 2699 | 2699 2700 | 2700 2701 | 2701 2702 | 2702 2703 | 2703 2704 | 2704 2705 | 2705 2706 | 2706 2707 | 2707 2708 | 2708 2709 | 2709 2710 | 2710 2711 | 2711 2712 | 2712 2713 | 2713 2714 | 2714 2715 | 2715 2716 | 2716 2717 | 2717 2718 | 2718 2719 | 2719 2720 | 2720 2721 | 2721 2722 | 2722 2723 | 2723 2724 | 2724 2725 | 2725 2726 | 2726 2727 | 2727 2728 | 2728 2729 | 2729 2730 | 2730 2731 | 2731 2732 | 2732 2733 | 2733 2734 | 2734 2735 | 2735 2736 | 2736 2737 | 2737 2738 | 2738 2739 | 2739 2740 | 2740 2741 | 2741 2742 | 2742 2743 | 2743 2744 | 2744 2745 | 2745 2746 | 2746 2747 | 2747 2748 | 2748 2749 | 2749 2750 | 2750 2751 | 2751 2752 | 2752 2753 | 2753 2754 | 2754 2755 | 2755 2756 | 2756 2757 | 2757 2758 | 2758 2759 | 2759 2760 | 2760 2761 | 2761 2762 | 2762 2763 | 2763 2764 | 2764 2765 | 2765 2766 | 2766 2767 | 2767 2768 | 2768 2769 | 2769 2770 | 2770 2771 | 2771 2772 | 2772 2773 | 2773 2774 | 2774 2775 | 2775 2776 | 2776 2777 | 2777 2778 | 2778 2779 | 2779 2780 | 2780 2781 | 2781 2782 | 2782 2783 | 2783 2784 | 2784 2785 | 2785 2786 | 2786 2787 | 2787 2788 | 2788 2789 | 2789 2790 | 2790 2791 | 2791 2792 | 2792 2793 | 2793 2794 | 2794 2795 | 2795 2796 | 2796 2797 | 2797 2798 | 2798 2799 | 2799 2800 | 2800 2801 | 2801 2802 | 2802 2803 | 2803 2804 | 2804 2805 | 2805 2806 | 2806 2807 | 2807 2808 | 2808 2809 | 2809 2810 | 2810 2811 | 2811 2812 | 2812 2813 | 2813 2814 | 2814 2815 | 2815 2816 | 2816 2817 | 2817 2818 | 2818 2819 | 2819 2820 | 2820 2821 | 2821 2822 | 2822 2823 | 2823 2824 | 2824 2825 | 2825 2826 | 2826 2827 | 2827 2828 | 2828 2829 | 2829 2830 | 2830 2831 | 2831 2832 | 2832 2833 | 2833 2834 | 2834 2835 | 2835 2836 | 2836 2837 | 2837 2838 | 2838 2839 | 2839 2840 | 2840 2841 | 2841 2842 | 2842 2843 | 2843 2844 | 2844 2845 | 2845 2846 | 2846 2847 | 2847 2848 | 2848 2849 | 2849 2850 | 2850 2851 | 2851 2852 | 2852 2853 | 2853 2854 | 2854 2855 | 2855 2856 | 2856 2857 | 2857 2858 | 2858 2859 | 2859 2860 | 2860 2861 | 2861 2862 | 2862 2863 | 2863 2864 | 2864 2865 | 2865 2866 | 2866 2867 | 2867 2868 | 2868 2869 | 2869 2870 | 2870 2871 | 2871 2872 | 2872 2873 | 2873 2874 | 2874 2875 | 2875 2876 | 2876 2877 | 2877 2878 | 2878 2879 | 2879 2880 | 2880 2881 | 2881 2882 | 2882 2883 | 2883 2884 | 2884 2885 | 2885 2886 | 2886 2887 | 2887 2888 | 2888 2889 | 2889 2890 | 2890 2891 | 2891 2892 | 2892 2893 | 2893 2894 | 2894 2895 | 2895 2896 | 2896 2897 | 2897 2898 | 2898 2899 | 2899 2900 | 2900 2901 | 2901 2902 | 2902 2903 | 2903 2904 | 2904 2905 | 2905 2906 | 2906 2907 | 2907 2908 | 2908 2909 | 2909 2910 | 2910 2911 | 2911 2912 | 2912 2913 | 2913 2914 | 2914 2915 | 2915 2916 | 2916 2917 | 2917 2918 | 2918 2919 | 2919 2920 | 2920 2921 | 2921 2922 | 2922 2923 | 2923 2924 | 2924 2925 | 2925 2926 | 2926 2927 | 2927 2928 | 2928 2929 | 2929 2930 | 2930 2931 | 2931 2932 | 2932 2933 | 2933 2934 | 2934 2935 | 2935 2936 | 2936 2937 | 2937 2938 | 2938 2939 | 2939 2940 | 2940 2941 | 2941 2942 | 2942 2943 | 2943 2944 | 2944 2945 | 2945 2946 | 2946 2947 | 2947 2948 | 2948 2949 | 2949 2950 | 2950 2951 | 2951 2952 | 2952 2953 | 2953 2954 | 2954 2955 | 2955 2956 | 2956 2957 | 2957 2958 | 2958 2959 | 2959 2960 | 2960 2961 | 2961 2962 | 2962 2963 | 2963 2964 | 2964 2965 | 2965 2966 | 2966 2967 | 2967 2968 | 2968 2969 | 2969 2970 | 2970 2971 | 2971 2972 | 2972 2973 | 2973 2974 | 2974 2975 | 2975 2976 | 2976 2977 | 2977 2978 | 2978 2979 | 2979 2980 | 2980 2981 | 2981 2982 | 2982 2983 | 2983 2984 | 2984 2985 | 2985 2986 | 2986 2987 | 2987 2988 | 2988 2989 | 2989 2990 | 2990 2991 | 2991 2992 | 2992 2993 | 2993 2994 | 2994 2995 | 2995 2996 | 2996 2997 | 2997 2998 | 2998 2999 | 2999 3000 | 3000 3001 | 3001 3002 | 3002 3003 | 3003 3004 | 3004 3005 | 3005 3006 | 3006 3007 | 3007 3008 | 3008 3009 | 3009 3010 | 3010 3011 | 3011 3012 | 3012 3013 | 3013 3014 | 3014 3015 | 3015 3016 | 3016 3017 | 3017 3018 | 3018 3019 | 3019 3020 | 3020 3021 | 3021 3022 | 3022 3023 | 3023 3024 | 3024 3025 | 3025 3026 | 3026 3027 | 3027 3028 | 3028 3029 | 3029 3030 | 3030 3031 | 3031 3032 | 3032 3033 | 3033 3034 | 3034 3035 | 3035 3036 | 3036 3037 | 3037 3038 | 3038 3039 | 3039 3040 | 3040 3041 | 3041 3042 | 3042 3043 | 3043 3044 | 3044 3045 | 3045 3046 | 3046 3047 | 3047 3048 | 3048 3049 | 3049 3050 | 3050 3051 | 3051 3052 | 3052 3053 | 3053 3054 | 3054 3055 | 3055 3056 | 3056 3057 | 3057 3058 | 3058 3059 | 3059 3060 | 3060 3061 | 3061 3062 | 3062 3063 | 3063 3064 | 3064 3065 | 3065 3066 | 3066 3067 | 3067 3068 | 3068 3069 | 3069 3070 | 3070 3071 | 3071 3072 | 3072 3073 | 3073 3074 | 3074 3075 | 3075 3076 | 3076 3077 | 3077 3078 | 3078 3079 | 3079 3080 | 3080 3081 | 3081 3082 | 3082 3083 | 3083 3084 | 3084 3085 | 3085 3086 | 3086 3087 | 3087 3088 | 3088 3089 | 3089 3090 | 3090 3091 | 3091 3092 | 3092 3093 | 3093 3094 | 3094 3095 | 3095 3096 | 3096 3097 | 3097 3098 | 3098 3099 | 3099 3100 | 3100 3101 | 3101 3102 | 3102 3103 | 3103 3104 | 3104 3105 | 3105 3106 | 3106 3107 | 3107 3108 | 3108 3109 | 3109 3110 | 3110 3111 | 3111 3112 | 3112 3113 | 3113 3114 | 3114 3115 | 3115 3116 | 3116 3117 | 3117 3118 | 3118 3119 | 3119 3120 | 3120 3121 | 3121 3122 | 3122 3123 | 3123 3124 | 3124 3125 | 3125 3126 | 3126 3127 | 3127 3128 | 3128 3129 | 3129 3130 | 3130 3131 | 3131 3132 | 3132 3133 | 3133 3134 | 3134 3135 | 3135 3136 | 3136 3137 | 3137 3138 | 3138 3139 | 3139 3140 | 3140 3141 | 3141 3142 | 3142 3143 | 3143 3144 | 3144 3145 | 3145 3146 | 3146 3147 | 3147 3148 | 3148 3149 | 3149 3150 | 3150 3151 | 3151 3152 | 3152 3153 | 3153 3154 | 3154 3155 | 3155 3156 | 3156 3157 | 3157 3158 | 3158 3159 | 3159 3160 | 3160 3161 | 3161 3162 | 3162 3163 | 3163 3164 | 3164 3165 | 3165 3166 | 3166 3167 | 3167 3168 | 3168 3169 | 3169 3170 | 3170 3171 | 3171 3172 | 3172 3173 | 3173 3174 | 3174 3175 | 3175 3176 | 3176 3177 | 3177 3178 | 3178 3179 | 3179 3180 | 3180 3181 | 3181 3182 | 3182 3183 | 3183 3184 | 3184 3185 | 3185 3186 | 3186 3187 | 3187 3188 | 3188 3189 | 3189 3190 | 3190 3191 | 3191 3192 | 3192 3193 | 3193 3194 | 3194 3195 | 3195 3196 | 3196 3197 | 3197 3198 | 3198 3199 | 3199 3200 | 3200 3201 | 3201 3202 | 3202 3203 | 3203 3204 | 3204 3205 | 3205 3206 | 3206 3207 | 3207 3208 | 3208 3209 | 3209 3210 | 3210 3211 | 3211 3212 | 3212 3213 | 3213 3214 | 3214 3215 | 3215 3216 | 3216 3217 | 3217 3218 | 3218 3219 | 3219 3220 | 3220 3221 | 3221 3222 | 3222 3223 | 3223 3224 | 3224 3225 | 3225 3226 | 3226 3227 | 3227 3228 | 3228 3229 | 3229 3230 | 3230 3231 | 3231 3232 | 3232 3233 | 3233 3234 | 3234 3235 | 3235 3236 | 3236 3237 | 3237 3238 | 3238 3239 | 3239 3240 | 3240 3241 | 3241 3242 | 3242 3243 | 3243 3244 | 3244 3245 | 3245 3246 | 3246 3247 | 3247 3248 | 3248 3249 | 3249 3250 | 3250 3251 | 3251 3252 | 3252 3253 | 3253 3254 | 3254 3255 | 3255 3256 | 3256 3257 | 3257 3258 | 3258 3259 | 3259 3260 | 3260 3261 | 3261 3262 | 3262 3263 | 3263 3264 | 3264 3265 | 3265 3266 | 3266 3267 | 3267 3268 | 3268 3269 | 3269 3270 | 3270 3271 | 3271 3272 | 3272 3273 | 3273 3274 | 3274 3275 | 3275 3276 | 3276 3277 | 3277 3278 | 3278 3279 | 3279 3280 | 3280 3281 | 3281 3282 | 3282 3283 | 3283 3284 | 3284 3285 | 3285 3286 | 3286 3287 | 3287 3288 | 3288 3289 | 3289 3290 | 3290 3291 | 3291 3292 | 3292 3293 | 3293 3294 | 3294 3295 | 3295 3296 | 3296 3297 | 3297 3298 | 3298 3299 | 3299 3300 | 3300 3301 | 3301 3302 | 3302 3303 | 3303 3304 | 3304 3305 | 3305 3306 | 3306 3307 | 3307 3308 | 3308 3309 | 3309 3310 | 3310 3311 | 3311 3312 | 3312 3313 | 3313 3314 | 3314 3315 | 3315 3316 | 3316 3317 | 3317 3318 | 3318 3319 | 3319 3320 | 3320 3321 | 3321 3322 | 3322 3323 | 3323 3324 | 3324 3325 | 3325 3326 | 3326 3327 | 3327 3328 | 3328 3329 | 3329 3330 | 3330 3331 | 3331 3332 | 3332 3333 | 3333 3334 | 3334 3335 | 3335 3336 | 3336 3337 | 3337 3338 | 3338 3339 | 3339 3340 | 3340 3341 | 3341 3342 | 3342 3343 | 3343 3344 | 3344 3345 | 3345 3346 | 3346 3347 | 3347 3348 | 3348 3349 | 3349 3350 | 3350 3351 | 3351 3352 | 3352 3353 | 3353 3354 | 3354 3355 | 3355 3356 | 3356 3357 | 3357 3358 | 3358 3359 | 3359 3360 | 3360 3361 | 3361 3362 | 3362 3363 | 3363 3364 | 3364 3365 | 3365 3366 | 3366 3367 | 3367 3368 | 3368 3369 | 3369 3370 | 3370 3371 | 3371 3372 | 3372 3373 | 3373 3374 | 3374 3375 | 3375 3376 | 3376 3377 | 3377 3378 | 3378 3379 | 3379 3380 | 3380 3381 | 3381 3382 | 3382 3383 | 3383 3384 | 3384 3385 | 3385 3386 | 3386 3387 | 3387 3388 | 3388 3389 | 3389 3390 | 3390 3391 | 3391 3392 | 3392 3393 | 3393 3394 | 3394 3395 | 3395 3396 | 3396 3397 | 3397 3398 | 3398 3399 | 3399 3400 | 3400 3401 | 3401 3402 | 3402 3403 | 3403 3404 | 3404 3405 | 3405 3406 | 3406 3407 | 3407 3408 | 3408 3409 | 3409 3410 | 3410 3411 | 3411 3412 | 3412 3413 | 3413 3414 | 3414 3415 | 3415 3416 | 3416 3417 | 3417 3418 | 3418 3419 | 3419 3420 | 3420 3421 | 3421 3422 | 3422 3423 | 3423 3424 | 3424 3425 | 3425 3426 | 3426 3427 | 3427 3428 | 3428 3429 | 3429 3430 | 3430 3431 | 3431 3432 | 3432 3433 | 3433 3434 | 3434 3435 | 3435 3436 | 3436 3437 | 3437 3438 | 3438 3439 | 3439 3440 | 3440 3441 | 3441 3442 | 3442 3443 | 3443 3444 | 3444 3445 | 3445 3446 | 3446 3447 | 3447 3448 | 3448 3449 | 3449 3450 | 3450 3451 | 3451 3452 | 3452 3453 | 3453 3454 | 3454 3455 | 3455 3456 | 3456 3457 | 3457 3458 | 3458 3459 | 3459 3460 | 3460 3461 | 3461 3462 | 3462 3463 | 3463 3464 | 3464 3465 | 3465 3466 | 3466 3467 | 3467 3468 | 3468 3469 | 3469 3470 | 3470 3471 | 3471 3472 | 3472 3473 | 3473 3474 | 3474 3475 | 3475 3476 | 3476 3477 | 3477 3478 | 3478 3479 | 3479 3480 | 3480 3481 | 3481 3482 | 3482 3483 | 3483 3484 | 3484 3485 | 3485 3486 | 3486 3487 | 3487 3488 | 3488 3489 | 3489 3490 | 3490 3491 | 3491 3492 | 3492 3493 | 3493 3494 | 3494 3495 | 3495 3496 | 3496 3497 | 3497 3498 | 3498 3499 | 3499 3500 | 3500 3501 | 3501 3502 | 3502 3503 | 3503 3504 | 3504 3505 | 3505 3506 | 3506 3507 | 3507 3508 | 3508 3509 | 3509 3510 | 3510 3511 | 3511 3512 | 3512 3513 | 3513 3514 | 3514 3515 | 3515 3516 | 3516 3517 | 3517 3518 | 3518 3519 | 3519 3520 | 3520 3521 | 3521 3522 | 3522 3523 | 3523 3524 | 3524 3525 | 3525 3526 | 3526 3527 | 3527 3528 | 3528 3529 | 3529 3530 | 3530 3531 | 3531 3532 | 3532 3533 | 3533 3534 | 3534 3535 | 3535 3536 | 3536 3537 | 3537 3538 | 3538 3539 | 3539 3540 | 3540 3541 | 3541 3542 | 3542 3543 | 3543 3544 | 3544 3545 | 3545 3546 | 3546 3547 | 3547 3548 | 3548 3549 | 3549 3550 | 3550 3551 | 3551 3552 | 3552 3553 | 3553 3554 | 3554 3555 | 3555 3556 | 3556 3557 | 3557 3558 | 3558 3559 | 3559 3560 | 3560 3561 | 3561 3562 | 3562 3563 | 3563 3564 | 3564 3565 | 3565 3566 | 3566 3567 | 3567 3568 | 3568 3569 | 3569 3570 | 3570 3571 | 3571 3572 | 3572 3573 | 3573 3574 | 3574 3575 | 3575 3576 | 3576 3577 | 3577 3578 | 3578 3579 | 3579 3580 | 3580 3581 | 3581 3582 | 3582 3583 | 3583 3584 | 3584 3585 | 3585 3586 | 3586 3587 | 3587 3588 | 3588 3589 | 3589 3590 | 3590 3591 | 3591 3592 | 3592 3593 | 3593 3594 | 3594 3595 | 3595 3596 | 3596 3597 | 3597 3598 | 3598 3599 | 3599 3600 | 3600 3601 | 3601 3602 | 3602 3603 | 3603 3604 | 3604 3605 | 3605 3606 | 3606 3607 | 3607 3608 | 3608 3609 | 3609 3610 | 3610 3611 | 3611 3612 | 3612 3613 | 3613 3614 | 3614 3615 | 3615 3616 | 3616 3617 | 3617 3618 | 3618 3619 | 3619 3620 | 3620 3621 | 3621 3622 | 3622 3623 | 3623 3624 | 3624 3625 | 3625 3626 | 3626 3627 | 3627 3628 | 3628 3629 | 3629 3630 | 3630 3631 | 3631 3632 | 3632 3633 | 3633 3634 | 3634 3635 | 3635 3636 | 3636 3637 | 3637 3638 | 3638 3639 | 3639 3640 | 3640 3641 | 3641 3642 | 3642 3643 | 3643 3644 | 3644 3645 | 3645 3646 | 3646 3647 | 3647 3648 | 3648 3649 | 3649 3650 | 3650 3651 | 3651 3652 | 3652 3653 | 3653 3654 | 3654 3655 | 3655 3656 | 3656 3657 | 3657 3658 | 3658 3659 | 3659 3660 | 3660 3661 | 3661 3662 | 3662 3663 | 3663 3664 | 3664 3665 | 3665 3666 | 3666 3667 | 3667 3668 | 3668 3669 | 3669 3670 | 3670 3671 | 3671 3672 | 3672 3673 | 3673 3674 | 3674 3675 | 3675 3676 | 3676 3677 | 3677 3678 | 3678 3679 | 3679 3680 | 3680 3681 | 3681 3682 | 3682 3683 | 3683 3684 | 3684 3685 | 3685 3686 | 3686 3687 | 3687 3688 | 3688 3689 | 3689 3690 | 3690 3691 | 3691 3692 | 3692 3693 | 3693 3694 | 3694 3695 | 3695 3696 | 3696 3697 | 3697 3698 | 3698 3699 | 3699 3700 | 3700 3701 | 3701 3702 | 3702 3703 | 3703 3704 | 3704 3705 | 3705 3706 | 3706 3707 | 3707 3708 | 3708 3709 | 3709 3710 | 3710 3711 | 3711 3712 | 3712 3713 | 3713 3714 | 3714 3715 | 3715 3716 | 3716 3717 | 3717 3718 | 3718 3719 | 3719 3720 | 3720 3721 | 3721 3722 | 3722 3723 | 3723 3724 | 3724 3725 | 3725 3726 | 3726 3727 | 3727 3728 | 3728 3729 | 3729 3730 | 3730 3731 | 3731 3732 | 3732 3733 | 3733 3734 | 3734 3735 | 3735 3736 | 3736 3737 | 3737 3738 | 3738 3739 | 3739 3740 | 3740 3741 | 3741 3742 | 3742 3743 | 3743 3744 | 3744 3745 | 3745 3746 | 3746 3747 | 3747 3748 | 3748 3749 | 3749 3750 | 3750 3751 | 3751 3752 | 3752 3753 | 3753 3754 | 3754 3755 | 3755 3756 | 3756 3757 | 3757 3758 | 3758 3759 | 3759 3760 | 3760 3761 | 3761 3762 | 3762 3763 | 3763 3764 | 3764 3765 | 3765 3766 | 3766 3767 | 3767 3768 | 3768 3769 | 3769 3770 | 3770 3771 | 3771 3772 | 3772 3773 | 3773 3774 | 3774 3775 | 3775 3776 | 3776 3777 | 3777 3778 | 3778 3779 | 3779 3780 | 3780 3781 | 3781 3782 | 3782 3783 | 3783 3784 | 3784 3785 | 3785 3786 | 3786 3787 | 3787 3788 | 3788 3789 | 3789 3790 | 3790 3791 | 3791 3792 | 3792 3793 | 3793 3794 | 3794 3795 | 3795 3796 | 3796 3797 | 3797 3798 | 3798 3799 | 3799 3800 | 3800 3801 | 3801 3802 | 3802 3803 | 3803 3804 | 3804 3805 | 3805 3806 | 3806 3807 | 3807 3808 | 3808 3809 | 3809 3810 | 3810 3811 | 3811 3812 | 3812 3813 | 3813 3814 | 3814 3815 | 3815 3816 | 3816 3817 | 3817 3818 | 3818 3819 | 3819 3820 | 3820 3821 | 3821 3822 | 3822 3823 | 3823 3824 | 3824 3825 | 3825 3826 | 3826 3827 | 3827 3828 | 3828 3829 | 3829 3830 | 3830 3831 | 3831 3832 | 3832 3833 | 3833 3834 | 3834 3835 | 3835 3836 | 3836 3837 | 3837 3838 | 3838 3839 | 3839 3840 | 3840 3841 | 3841 3842 | 3842 3843 | 3843 3844 | 3844 3845 | 3845 3846 | 3846 3847 | 3847 3848 | 3848 3849 | 3849 3850 | 3850 3851 | 3851 3852 | 3852 3853 | 3853 3854 | 3854 3855 | 3855 3856 | 3856 3857 | 3857 3858 | 3858 3859 | 3859 3860 | 3860 3861 | 3861 3862 | 3862 3863 | 3863 3864 | 3864 3865 | 3865 3866 | 3866 3867 | 3867 3868 | 3868 3869 | 3869 3870 | 3870 3871 | 3871 3872 | 3872 3873 | 3873 3874 | 3874 3875 | 3875 3876 | 3876 3877 | 3877 3878 | 3878 3879 | 3879 3880 | 3880 3881 | 3881 3882 | 3882 3883 | 3883 3884 | 3884 3885 | 3885 3886 | 3886 3887 | 3887 3888 | 3888 3889 | 3889 3890 | 3890 3891 | 3891 3892 | 3892 3893 | 3893 3894 | 3894 3895 | 3895 3896 | 3896 3897 | 3897 3898 | 3898 3899 | 3899 3900 | 3900 3901 | 3901 3902 | 3902 3903 | 3903 3904 | 3904 3905 | 3905 3906 | 3906 3907 | 3907 3908 | 3908 3909 | 3909 3910 | 3910 3911 | 3911 3912 | 3912 3913 | 3913 3914 | 3914 3915 | 3915 3916 | 3916 3917 | 3917 3918 | 3918 3919 | 3919 3920 | 3920 3921 | 3921 3922 | 3922 3923 | 3923 3924 | 3924 3925 | 3925 3926 | 3926 3927 | 3927 3928 | 3928 3929 | 3929 3930 | 3930 3931 | 3931 3932 | 3932 3933 | 3933 3934 | 3934 3935 | 3935 3936 | 3936 3937 | 3937 3938 | 3938 3939 | 3939 3940 | 3940 3941 | 3941 3942 | 3942 3943 | 3943 3944 | 3944 3945 | 3945 3946 | 3946 3947 | 3947 3948 | 3948 3949 | 3949 3950 | 3950 3951 | 3951 3952 | 3952 3953 | 3953 3954 | 3954 3955 | 3955 3956 | 3956 3957 | 3957 3958 | 3958 3959 | 3959 3960 | 3960 3961 | 3961 3962 | 3962 3963 | 3963 3964 | 3964 3965 | 3965 3966 | 3966 3967 | 3967 3968 | 3968 3969 | 3969 3970 | 3970 3971 | 3971 3972 | 3972 3973 | 3973 3974 | 3974 3975 | 3975 3976 | 3976 3977 | 3977 3978 | 3978 3979 | 3979 3980 | 3980 3981 | 3981 3982 | 3982 3983 | 3983 3984 | 3984 3985 | 3985 3986 | 3986 3987 | 3987 3988 | 3988 3989 | 3989 3990 | 3990 3991 | 3991 3992 | 3992 3993 | 3993 3994 | 3994 3995 | 3995 3996 | 3996 3997 | 3997 3998 | 3998 3999 | 3999 4000 | 4000 4001 | 4001 4002 | 4002 4003 | 4003 4004 | 4004 4005 | 4005 4006 | 4006 4007 | 4007 4008 | 4008 4009 | 4009 4010 | 4010 4011 | 4011 4012 | 4012 4013 | 4013 4014 | 4014 4015 | 4015 4016 | 4016 4017 | 4017 4018 | 4018 4019 | 4019 4020 | 4020 4021 | 4021 4022 | 4022 4023 | 4023 4024 | 4024 4025 | 4025 4026 | 4026 4027 | 4027 4028 | 4028 4029 | 4029 4030 | 4030 4031 | 4031 4032 | 4032 4033 | 4033 4034 | 4034 4035 | 4035 4036 | 4036 4037 | 4037 4038 | 4038 4039 | 4039 4040 | 4040 4041 | 4041 4042 | 4042 4043 | 4043 4044 | 4044 4045 | 4045 4046 | 4046 4047 | 4047 4048 | 4048 4049 | 4049 4050 | 4050 4051 | 4051 4052 | 4052 4053 | 4053 4054 | 4054 4055 | 4055 4056 | 4056 4057 | 4057 4058 | 4058 4059 | 4059 4060 | 4060 4061 | 4061 4062 | 4062 4063 | 4063 4064 | 4064 4065 | 4065 4066 | 4066 4067 | 4067 4068 | 4068 4069 | 4069 4070 | 4070 4071 | 4071 4072 | 4072 4073 | 4073 4074 | 4074 4075 | 4075 4076 | 4076 4077 | 4077 4078 | 4078 4079 | 4079 4080 | 4080 4081 | 4081 4082 | 4082 4083 | 4083 4084 | 4084 4085 | 4085 4086 | 4086 4087 | 4087 4088 | 4088 4089 | 4089 4090 | 4090 4091 | 4091 4092 | 4092 4093 | 4093 4094 | 4094 4095 | 4095 4096 | 4096 4097 | 4097 4098 | 4098 4099 | 4099 4100 | 4100 4101 | 4101 4102 | 4102 4103 | 4103 4104 | 4104 4105 | 4105 4106 | 4106 4107 | 4107 4108 | 4108 4109 | 4109 4110 | 4110 4111 | 4111 4112 | 4112 4113 | 4113 4114 | 4114 4115 | 4115 4116 | 4116 4117 | 4117 4118 | 4118 4119 | 4119 4120 | 4120 4121 | 4121 4122 | 4122 4123 | 4123 4124 | 4124 4125 | 4125 4126 | 4126 4127 | 4127 4128 | 4128 4129 | 4129 4130 | 4130 4131 | 4131 4132 | 4132 4133 | 4133 4134 | 4134 4135 | 4135 4136 | 4136 4137 | 4137 4138 | 4138 4139 | 4139 4140 | 4140 4141 | 4141 4142 | 4142 4143 | 4143 4144 | 4144 4145 | 4145 4146 | 4146 4147 | 4147 4148 | 4148 4149 | 4149 4150 | 4150 4151 | 4151 4152 | 4152 4153 | 4153 4154 | 4154 4155 | 4155 4156 | 4156 4157 | 4157 4158 | 4158 4159 | 4159 4160 | 4160 4161 | 4161 4162 | 4162 4163 | 4163 4164 | 4164 4165 | 4165 4166 | 4166 4167 | 4167 4168 | 4168 4169 | 4169 4170 | 4170 4171 | 4171 4172 | 4172 4173 | 4173 4174 | 4174 4175 | 4175 4176 | 4176 4177 | 4177 4178 | 4178 4179 | 4179 4180 | 4180 4181 | 4181 4182 | 4182 4183 | 4183 4184 | 4184 4185 | 4185 4186 | 4186 4187 | 4187 4188 | 4188 4189 | 4189 4190 | 4190 4191 | 4191 4192 | 4192 4193 | 4193 4194 | 4194 4195 | 4195 4196 | 4196 4197 | 4197 4198 | 4198 4199 | 4199 4200 | 4200 4201 | 4201 4202 | 4202 4203 | 4203 4204 | 4204 4205 | 4205 4206 | 4206 4207 | 4207 4208 | 4208 4209 | 4209 4210 | 4210 4211 | 4211 4212 | 4212 4213 | 4213 4214 | 4214 4215 | 4215 4216 | 4216 4217 | 4217 4218 | 4218 4219 | 4219 4220 | 4220 4221 | 4221 4222 | 4222 4223 | 4223 4224 | 4224 4225 | 4225 4226 | 4226 4227 | 4227 4228 | 4228 4229 | 4229 4230 | 4230 4231 | 4231 4232 | 4232 4233 | 4233 4234 | 4234 4235 | 4235 4236 | 4236 4237 | 4237 4238 | 4238 4239 | 4239 4240 | 4240 4241 | 4241 4242 | 4242 4243 | 4243 4244 | 4244 4245 | 4245 4246 | 4246 4247 | 4247 4248 | 4248 4249 | 4249 4250 | 4250 4251 | 4251 4252 | 4252 4253 | 4253 4254 | 4254 4255 | 4255 4256 | 4256 4257 | 4257 4258 | 4258 4259 | 4259 4260 | 4260 4261 | 4261 4262 | 4262 4263 | 4263 4264 | 4264 4265 | 4265 4266 | 4266 4267 | 4267 4268 | 4268 4269 | 4269 4270 | 4270 4271 | 4271 4272 | 4272 4273 | 4273 4274 | 4274 4275 | 4275 4276 | 4276 4277 | 4277 4278 | 4278 4279 | 4279 4280 | 4280 4281 | 4281 4282 | 4282 4283 | 4283 4284 | 4284 4285 | 4285 4286 | 4286 4287 | 4287 4288 | 4288 4289 | 4289 4290 | 4290 4291 | 4291 4292 | 4292 4293 | 4293 4294 | 4294 4295 | 4295 4296 | 4296 4297 | 4297 4298 | 4298 4299 | 4299 4300 | 4300 4301 | 4301 4302 | 4302 4303 | 4303 4304 | 4304 4305 | 4305 4306 | 4306 4307 | 4307 4308 | 4308 4309 | 4309 4310 | 4310 4311 | 4311 4312 | 4312 4313 | 4313 4314 | 4314 4315 | 4315 4316 | 4316 4317 | 4317 4318 | 4318 4319 | 4319 4320 | 4320 4321 | 4321 4322 | 4322 4323 | 4323 4324 | 4324 4325 | 4325 4326 | 4326 4327 | 4327 4328 | 4328 4329 | 4329 4330 | 4330 4331 | 4331 4332 | 4332 4333 | 4333 4334 | 4334 4335 | 4335 4336 | 4336 4337 | 4337 4338 | 4338 4339 | 4339 4340 | 4340 4341 | 4341 4342 | 4342 4343 | 4343 4344 | 4344 4345 | 4345 4346 | 4346 4347 | 4347 4348 | 4348 4349 | 4349 4350 | 4350 4351 | 4351 4352 | 4352 4353 | 4353 4354 | 4354 4355 | 4355 4356 | 4356 4357 | 4357 4358 | 4358 4359 | 4359 4360 | 4360 4361 | 4361 4362 | 4362 4363 | 4363 4364 | 4364 4365 | 4365 4366 | 4366 4367 | 4367 4368 | 4368 4369 | 4369 4370 | 4370 4371 | 4371 4372 | 4372 4373 | 4373 4374 | 4374 4375 | 4375 4376 | 4376 4377 | 4377 4378 | 4378 4379 | 4379 4380 | 4380 4381 | 4381 4382 | 4382 4383 | 4383 4384 | 4384 4385 | 4385 4386 | 4386 4387 | 4387 4388 | 4388 4389 | 4389 4390 | 4390 4391 | 4391 4392 | 4392 4393 | 4393 4394 | 4394 4395 | 4395 4396 | 4396 4397 | 4397 4398 | 4398 4399 | 4399 4400 | 4400 4401 | 4401 4402 | 4402 4403 | 4403 4404 | 4404 4405 | 4405 4406 | 4406 4407 | 4407 4408 | 4408 4409 | 4409 4410 | 4410 4411 | 4411 4412 | 4412 4413 | 4413 4414 | 4414 4415 | 4415 4416 | 4416 4417 | 4417 4418 | 4418 4419 | 4419 4420 | 4420 4421 | 4421 4422 | 4422 4423 | 4423 4424 | 4424 4425 | 4425 4426 | 4426 4427 | 4427 4428 | 4428 4429 | 4429 4430 | 4430 4431 | 4431 4432 | 4432 4433 | 4433 4434 | 4434 4435 | 4435 4436 | 4436 4437 | 4437 4438 | 4438 4439 | 4439 4440 | 4440 4441 | 4441 4442 | 4442 4443 | 4443 4444 | 4444 4445 | 4445 4446 | 4446 4447 | 4447 4448 | 4448 4449 | 4449 4450 | 4450 4451 | 4451 4452 | 4452 4453 | 4453 4454 | 4454 4455 | 4455 4456 | 4456 4457 | 4457 4458 | 4458 4459 | 4459 4460 | 4460 4461 | 4461 4462 | 4462 4463 | 4463 4464 | 4464 4465 | 4465 4466 | 4466 4467 | 4467 4468 | 4468 4469 | 4469 4470 | 4470 4471 | 4471 4472 | 4472 4473 | 4473 4474 | 4474 4475 | 4475 4476 | 4476 4477 | 4477 4478 | 4478 4479 | 4479 4480 | 4480 4481 | 4481 4482 | 4482 4483 | 4483 4484 | 4484 4485 | 4485 4486 | 4486 4487 | 4487 4488 | 4488 4489 | 4489 4490 | 4490 4491 | 4491 4492 | 4492 4493 | 4493 4494 | 4494 4495 | 4495 4496 | 4496 4497 | 4497 4498 | 4498 4499 | 4499 4500 | 4500 4501 | 4501 4502 | 4502 4503 | 4503 4504 | 4504 4505 | 4505 4506 | 4506 4507 | 4507 4508 | 4508 4509 | 4509 4510 | 4510 4511 | 4511 4512 | 4512 4513 | 4513 4514 | 4514 4515 | 4515 4516 | 4516 4517 | 4517 4518 | 4518 4519 | 4519 4520 | 4520 4521 | 4521 4522 | 4522 4523 | 4523 4524 | 4524 4525 | 4525 4526 | 4526 4527 | 4527 4528 | 4528 4529 | 4529 4530 | 4530 4531 | 4531 4532 | 4532 4533 | 4533 4534 | 4534 4535 | 4535 4536 | 4536 4537 | 4537 4538 | 4538 4539 | 4539 4540 | 4540 4541 | 4541 4542 | 4542 4543 | 4543 4544 | 4544 4545 | 4545 4546 | 4546 4547 | 4547 4548 | 4548 4549 | 4549 4550 | 4550 4551 | 4551 4552 | 4552 4553 | 4553 4554 | 4554 4555 | 4555 4556 | 4556 4557 | 4557 4558 | 4558 4559 | 4559 4560 | 4560 4561 | 4561 4562 | 4562 4563 | 4563 4564 | 4564 4565 | 4565 4566 | 4566 4567 | 4567 4568 | 4568 4569 | 4569 4570 | 4570 4571 | 4571 4572 | 4572 4573 | 4573 4574 | 4574 4575 | 4575 4576 | 4576 4577 | 4577 4578 | 4578 4579 | 4579 4580 | 4580 4581 | 4581 4582 | 4582 4583 | 4583 4584 | 4584 4585 | 4585 4586 | 4586 4587 | 4587 4588 | 4588 4589 | 4589 4590 | 4590 4591 | 4591 4592 | 4592 4593 | 4593 4594 | 4594 4595 | 4595 4596 | 4596 4597 | 4597 4598 | 4598 4599 | 4599 4600 | 4600 4601 | 4601 4602 | 4602 4603 | 4603 4604 | 4604 4605 | 4605 4606 | 4606 4607 | 4607 4608 | 4608 4609 | 4609 4610 | 4610 4611 | 4611 4612 | 4612 4613 | 4613 4614 | 4614 4615 | 4615 4616 | 4616 4617 | 4617 4618 | 4618 4619 | 4619 4620 | 4620 4621 | 4621 4622 | 4622 4623 | 4623 4624 | 4624 4625 | 4625 4626 | 4626 4627 | 4627 4628 | 4628 4629 | 4629 4630 | 4630 4631 | 4631 4632 | 4632 4633 | 4633 4634 | 4634 4635 | 4635 4636 | 4636 4637 | 4637 4638 | 4638 4639 | 4639 4640 | 4640 4641 | 4641 4642 | 4642 4643 | 4643 4644 | 4644 4645 | 4645 4646 | 4646 4647 | 4647 4648 | 4648 4649 | 4649 4650 | 4650 4651 | 4651 4652 | 4652 4653 | 4653 4654 | 4654 4655 | 4655 4656 | 4656 4657 | 4657 4658 | 4658 4659 | 4659 4660 | 4660 4661 | 4661 4662 | 4662 4663 | 4663 4664 | 4664 4665 | 4665 4666 | 4666 4667 | 4667 4668 | 4668 4669 | 4669 4670 | 4670 4671 | 4671 4672 | 4672 4673 | 4673 4674 | 4674 4675 | 4675 4676 | 4676 4677 | 4677 4678 | 4678 4679 | 4679 4680 | 4680 4681 | 4681 4682 | 4682 4683 | 4683 4684 | 4684 4685 | 4685 4686 | 4686 4687 | 4687 4688 | 4688 4689 | 4689 4690 | 4690 4691 | 4691 4692 | 4692 4693 | 4693 4694 | 4694 4695 | 4695 4696 | 4696 4697 | 4697 4698 | 4698 4699 | 4699 4700 | 4700 4701 | 4701 4702 | 4702 4703 | 4703 4704 | 4704 4705 | 4705 4706 | 4706 4707 | 4707 4708 | 4708 4709 | 4709 4710 | 4710 4711 | 4711 4712 | 4712 4713 | 4713 4714 | 4714 4715 | 4715 4716 | 4716 4717 | 4717 4718 | 4718 4719 | 4719 4720 | 4720 4721 | 4721 4722 | 4722 4723 | 4723 4724 | 4724 4725 | 4725 4726 | 4726 4727 | 4727 4728 | 4728 4729 | 4729 4730 | 4730 4731 | 4731 4732 | 4732 4733 | 4733 4734 | 4734 4735 | 4735 4736 | 4736 4737 | 4737 4738 | 4738 4739 | 4739 4740 | 4740 4741 | 4741 4742 | 4742 4743 | 4743 4744 | 4744 4745 | 4745 4746 | 4746 4747 | 4747 4748 | 4748 4749 | 4749 4750 | 4750 4751 | 4751 4752 | 4752 4753 | 4753 4754 | 4754 4755 | 4755 4756 | 4756 4757 | 4757 4758 | 4758 4759 | 4759 4760 | 4760 4761 | 4761 4762 | 4762 4763 | 4763 4764 | 4764 4765 | 4765 4766 | 4766 4767 | 4767 4768 | 4768 4769 | 4769 4770 | 4770 4771 | 4771 4772 | 4772 4773 | 4773 4774 | 4774 4775 | 4775 4776 | 4776 4777 | 4777 4778 | 4778 4779 | 4779 4780 | 4780 4781 | 4781 4782 | 4782 4783 | 4783 4784 | 4784 4785 | 4785 4786 | 4786 4787 | 4787 4788 | 4788 4789 | 4789 4790 | 4790 4791 | 4791 4792 | 4792 4793 | 4793 4794 | 4794 4795 | 4795 4796 | 4796 4797 | 4797 4798 | 4798 4799 | 4799 4800 | 4800 4801 | 4801 4802 | 4802 4803 | 4803 4804 | 4804 4805 | 4805 4806 | 4806 4807 | 4807 4808 | 4808 4809 | 4809 4810 | 4810 4811 | 4811 4812 | 4812 4813 | 4813 4814 | 4814 4815 | 4815 4816 | 4816 4817 | 4817 4818 | 4818 4819 | 4819 4820 | 4820 4821 | 4821 4822 | 4822 4823 | 4823 4824 | 4824 4825 | 4825 4826 | 4826 4827 | 4827 4828 | 4828 4829 | 4829 4830 | 4830 4831 | 4831 4832 | 4832 4833 | 4833 4834 | 4834 4835 | 4835 4836 | 4836 4837 | 4837 4838 | 4838 4839 | 4839 4840 | 4840 4841 | 4841 4842 | 4842 4843 | 4843 4844 | 4844 4845 | 4845 4846 | 4846 4847 | 4847 4848 | 4848 4849 | 4849 4850 | 4850 4851 | 4851 4852 | 4852 4853 | 4853 4854 | 4854 4855 | 4855 4856 | 4856 4857 | 4857 4858 | 4858 4859 | 4859 4860 | 4860 4861 | 4861 4862 | 4862 4863 | 4863 4864 | 4864 4865 | 4865 4866 | 4866 4867 | 4867 4868 | 4868 4869 | 4869 4870 | 4870 4871 | 4871 4872 | 4872 4873 | 4873 4874 | 4874 4875 | 4875 4876 | 4876 4877 | 4877 4878 | 4878 4879 | 4879 4880 | 4880 4881 | 4881 4882 | 4882 4883 | 4883 4884 | 4884 4885 | 4885 4886 | 4886 4887 | 4887 4888 | 4888 4889 | 4889 4890 | 4890 4891 | 4891 4892 | 4892 4893 | 4893 4894 | 4894 4895 | 4895 4896 | 4896 4897 | 4897 4898 | 4898 4899 | 4899 4900 | 4900 4901 | 4901 4902 | 4902 4903 | 4903 4904 | 4904 4905 | 4905 4906 | 4906 4907 | 4907 4908 | 4908 4909 | 4909 4910 | 4910 4911 | 4911 4912 | 4912 4913 | 4913 4914 | 4914 4915 | 4915 4916 | 4916 4917 | 4917 4918 | 4918 4919 | 4919 4920 | 4920 4921 | 4921 4922 | 4922 4923 | 4923 4924 | 4924 4925 | 4925 4926 | 4926 4927 | 4927 4928 | 4928 4929 | 4929 4930 | 4930 4931 | 4931 4932 | 4932 4933 | 4933 4934 | 4934 4935 | 4935 4936 | 4936 4937 | 4937 4938 | 4938 4939 | 4939 4940 | 4940 4941 | 4941 4942 | 4942 4943 | 4943 4944 | 4944 4945 | 4945 4946 | 4946 4947 | 4947 4948 | 4948 4949 | 4949 4950 | 4950 4951 | 4951 4952 | 4952 4953 | 4953 4954 | 4954 4955 | 4955 4956 | 4956 4957 | 4957 4958 | 4958 4959 | 4959 4960 | 4960 4961 | 4961 4962 | 4962 4963 | 4963 4964 | 4964 4965 | 4965 4966 | 4966 4967 | 4967 4968 | 4968 4969 | 4969 4970 | 4970 4971 | 4971 4972 | 4972 4973 | 4973 4974 | 4974 4975 | 4975 4976 | 4976 4977 | 4977 4978 | 4978 4979 | 4979 4980 | 4980 4981 | 4981 4982 | 4982 4983 | 4983 4984 | 4984 4985 | 4985 4986 | 4986 4987 | 4987 4988 | 4988 4989 | 4989 4990 | 4990 4991 | 4991 4992 | 4992 4993 | 4993 4994 | 4994 4995 | 4995 4996 | 4996 4997 | 4997 4998 | 4998 4999 | 4999 5000 | 5000 5001 | -------------------------------------------------------------------------------- /code/probs/prob3/tideman/tideman.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | // Max number of candidates 6 | #define MAX 9 7 | 8 | // preferences[i][j] is number of voters who prefer i over j 9 | int preferences[MAX][MAX]; 10 | 11 | // locked[i][j] means i is locked in over j 12 | bool locked[MAX][MAX]; 13 | 14 | // Each pair has a winner, loser 15 | typedef struct { 16 | int winner; 17 | int loser; 18 | } pair; 19 | 20 | // Array of candidates 21 | string candidates[MAX]; 22 | pair pairs[MAX * (MAX - 1) / 2]; 23 | 24 | int pair_count; 25 | int candidate_count; 26 | 27 | // Function prototypes 28 | bool vote(int rank, string name, int ranks[]); 29 | void record_preferences(int ranks[]); 30 | void add_pairs(void); 31 | void sort_pairs(void); 32 | void lock_pairs(void); 33 | void print_winner(void); 34 | 35 | int main(int argc, string argv[]) 36 | { 37 | // Check for invalid usage 38 | if (argc < 2) 39 | { 40 | printf("Usage: tideman [candidate ...]\n"); 41 | return 1; 42 | } 43 | 44 | // Populate array of candidates 45 | candidate_count = argc - 1; 46 | if (candidate_count > MAX) 47 | { 48 | printf("Maximum number of candidates is %i\n", MAX); 49 | return 2; 50 | } 51 | for (int i = 0; i < candidate_count; i++) 52 | { 53 | candidates[i] = argv[i + 1]; 54 | } 55 | 56 | // Clear graph of locked in pairs 57 | for (int i = 0; i < candidate_count; i++) 58 | { 59 | for (int j = 0; j < candidate_count; j++) 60 | { 61 | locked[i][j] = false; 62 | } 63 | } 64 | 65 | pair_count = 0; 66 | int voter_count = get_int("Number of voters: "); 67 | 68 | // Query for votes 69 | for (int i = 0; i < voter_count; i++) 70 | { 71 | // ranks[i] is voter's ith preference 72 | int ranks[candidate_count]; 73 | 74 | // Query for each rank 75 | for (int j = 0; j < candidate_count; j++) 76 | { 77 | string name = get_string("Rank %i: ", j + 1); 78 | 79 | if (!vote(j, name, ranks)) 80 | { 81 | printf("Invalid vote.\n"); 82 | return 3; 83 | } 84 | } 85 | 86 | record_preferences(ranks); 87 | 88 | printf("\n"); 89 | } 90 | 91 | add_pairs(); 92 | sort_pairs(); 93 | lock_pairs(); 94 | print_winner(); 95 | return 0; 96 | } 97 | 98 | // Update ranks given a new vote 99 | bool vote(int rank, string name, int ranks[]) 100 | { 101 | for (int i = 0; i < candidate_count; i++) 102 | { 103 | if (strcmp(name, candidates[i]) == 0) 104 | { 105 | ranks[rank] = i; 106 | return true; 107 | } 108 | } 109 | return false; 110 | } 111 | 112 | // Update preferences given one voter's ranks 113 | void record_preferences(int ranks[]) 114 | { 115 | for (int i = 0; i < candidate_count; i++) 116 | { 117 | for (int j = i + 1; j < candidate_count; j++) 118 | { 119 | preferences[ranks[i]][ranks[j]]++; 120 | } 121 | } 122 | return; 123 | } 124 | 125 | // Record pairs of candidates where one is preferred over the other 126 | void add_pairs(void) 127 | { 128 | for (int i = 0; i < candidate_count; i++) 129 | { 130 | for (int j = 0; j < candidate_count; j++) 131 | { 132 | if (preferences[i][j] > preferences[j][i]) 133 | { 134 | pairs[pair_count].winner = i; 135 | pairs[pair_count].loser = j; 136 | pair_count++; 137 | } 138 | } 139 | } 140 | return; 141 | } 142 | 143 | // Sort pairs in decreasing order by strength of victory 144 | void sort_pairs(void) 145 | { 146 | for (int i = 0; i < pair_count; i++) 147 | { 148 | int max = i; 149 | for (int j = i + 1; j < pair_count; j++) 150 | { 151 | if (preferences[pairs[j].winner][pairs[j].loser] > 152 | preferences[pairs[max].winner][pairs[max].loser]) 153 | { 154 | max = j; 155 | } 156 | } 157 | pair temp = pairs[i]; 158 | pairs[i] = pairs[max]; 159 | pairs[max] = temp; 160 | } 161 | return; 162 | } 163 | 164 | bool check_cycle(int winner, int loser) 165 | { 166 | if (winner == loser) 167 | { 168 | return true; 169 | } 170 | for (int i = 0; i < candidate_count; i++) 171 | { 172 | if (locked[loser][i]) 173 | { 174 | if (check_cycle(winner, i)) 175 | { 176 | 177 | return true; 178 | } 179 | } 180 | } 181 | return false; 182 | } 183 | 184 | // Lock pairs into the candidate graph in order, without creating cycles 185 | void lock_pairs(void) 186 | { 187 | for (int i = 0; i < pair_count; i++) 188 | { 189 | locked[pairs[i].winner][pairs[i].loser] = true; 190 | if (check_cycle(pairs[i].winner, pairs[i].loser)) 191 | { 192 | locked[pairs[i].winner][pairs[i].loser] = false; 193 | } 194 | } 195 | return; 196 | } 197 | 198 | // Print the winner of the election 199 | void print_winner(void) 200 | { 201 | for (int i = 0; i < candidate_count; i++) 202 | { 203 | bool is_winner = true; 204 | for (int j = 0; j < candidate_count; j++) 205 | { 206 | if (locked[j][i]) 207 | { 208 | is_winner = false; 209 | break; 210 | } 211 | } 212 | if (is_winner) 213 | { 214 | printf("%s\n", candidates[i]); 215 | } 216 | } 217 | return; 218 | } 219 | -------------------------------------------------------------------------------- /code/search.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | bool linear_search(int n, int numbers[], int size); 5 | 6 | bool binary_search(int n, int numbers[], int size); 7 | 8 | int main(void) 9 | { 10 | // An array of integers 11 | int numbers[] = {1, 3, 10, 20, 28, 70}; 12 | 13 | // Search for number 14 | int n = get_int("Number: "); 15 | if (linear_search(n, numbers, 7)) 16 | { 17 | printf("Found\n"); 18 | return 0; 19 | } else 20 | { 21 | printf("Not found\n"); 22 | return 1; 23 | } 24 | } 25 | 26 | bool linear_search(int n, int numbers[], int size) 27 | { 28 | for (int i = 0; i < size; i++) 29 | { 30 | if (numbers[i] == n) 31 | { 32 | return true; 33 | } 34 | } 35 | return false; 36 | } 37 | 38 | bool binary_search(int n, int numbers[], int size) 39 | { 40 | int left = 0; 41 | int right = size - 1; 42 | while (left <= right) 43 | { 44 | int mid = left + (right - left) / 2; 45 | if (numbers[mid] == n) 46 | { 47 | return true; 48 | } else if (numbers[mid] < n) 49 | { 50 | left = mid + 1; 51 | } else 52 | { 53 | right = mid - 1; 54 | } 55 | } 56 | return false; 57 | } 58 | -------------------------------------------------------------------------------- /code/sort: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/code/sort -------------------------------------------------------------------------------- /code/sort.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void selection_sort(int numbers[], int n); 4 | void bubble_sort(int numbers[], int n); 5 | void merge_sort(int numbers[], int n, int left, int right); 6 | 7 | int main() 8 | { 9 | int numbers[] = {5, 2, 7, 4, 1, 6, 3, 0}; 10 | // selection_sort(numbers, 8); 11 | // bubble_sort(numbers, 8); 12 | merge_sort(numbers, 8, 0, 7); 13 | for (int i = 0; i < 8; i++) 14 | { 15 | printf("%d ", numbers[i]); 16 | } 17 | } 18 | 19 | void selection_sort(int numbers[], int n) 20 | { 21 | for (int i = 0; i <= n - 1; i++) 22 | { 23 | int min = i; 24 | for (int j = i + 1; j <= n - 1; j++) 25 | { 26 | if (numbers[j] < numbers[min]) 27 | { 28 | min = j; 29 | } 30 | } 31 | int temp = numbers[min]; 32 | numbers[min] = numbers[i]; 33 | numbers[i] = temp; 34 | } 35 | } 36 | 37 | void bubble_sort(int numbers[], int n) 38 | { 39 | while (n - 1 > 0) 40 | { 41 | int is_swap = 0; 42 | for (int i = 0; i <= n - 2; i++) 43 | { 44 | if (numbers[i] > numbers[i + 1]) 45 | { 46 | int temp = numbers[i + 1]; 47 | numbers[i + 1] = numbers[i]; 48 | numbers[i] = temp; 49 | is_swap = 1; 50 | } 51 | } 52 | if (is_swap == 0) 53 | { 54 | return; 55 | } 56 | n--; 57 | } 58 | } 59 | 60 | void merge_sort(int numbers[], int n, int left, int right) 61 | { 62 | if (n == 1) 63 | { 64 | return; 65 | } 66 | int mid = (left + right) / 2; 67 | merge_sort(numbers, n / 2, left, mid); 68 | merge_sort(numbers, n - n / 2, mid + 1, right); 69 | int temp[n]; 70 | int i = left; 71 | int j = mid + 1; 72 | int k = 0; // current index of temp array 73 | while (i <= mid && j <= right) 74 | { 75 | if (numbers[i] < numbers[j]) 76 | { 77 | temp[k] = numbers[i]; 78 | i++; 79 | } else 80 | { 81 | temp[k] = numbers[j]; 82 | j++; 83 | } 84 | k++; 85 | } 86 | while (i <= mid) 87 | { 88 | temp[k] = numbers[i]; 89 | i++; 90 | k++; 91 | } 92 | while (j <= right) 93 | { 94 | temp[k] = numbers[j]; 95 | j++; 96 | k++; 97 | } 98 | for (int i = 0; i < n; i++) 99 | { 100 | numbers[left + i] = temp[i]; 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /code/struct.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // typedef struct { 4 | // int age; 5 | // string name; 6 | // } Person; 7 | 8 | int main() 9 | { 10 | struct Person { 11 | int age; 12 | string name; 13 | } p0 = {20, "John"}; 14 | 15 | struct A { 16 | struct Person p; 17 | }; 18 | 19 | struct Person p1; 20 | p1.age = 20; 21 | p1.name = "John"; 22 | int age = p1.age; 23 | struct Person p2 = {20, "John"}; 24 | struct Person p3 = {.name = "John", .age = 20}; 25 | } 26 | -------------------------------------------------------------------------------- /notes/introduction.md: -------------------------------------------------------------------------------- 1 | # CS50介绍 2 | 3 | [CS50x 2023](https://cs50.harvard.edu/x/2023/) 4 | 5 | 6 | - [整体内容](#整体内容) 7 | - [CS50不是什么](#cs50不是什么) 8 | - [课程材料](#课程材料) 9 | - [本系列视频提供什么](#本系列视频提供什么) 10 | - [个人学习计划安排](#个人学习计划安排) 11 | - [版权说明](#版权说明) 12 | 13 | 14 | ## 整体内容 15 | 16 | - 通用的入门基础知识 17 | - 如何自学新语言 18 | - C, Python, SQL, HTML/CSS, JavaScript 19 | 20 | ### CS50不是什么 21 | 22 | - 完整的项目开发教学 23 | - 快速上手某个框架的教程 24 | - 学完之后能马上找到工作的圣经 25 | 26 | ## 课程材料 27 | 28 | - Notes 课本/大纲 29 | - Slides 课件 30 | - Source Code 源码 31 | - Video 视频源 32 | - Shorts 短视频 33 | - Section 练习课 34 | - Practice Problems 练习题 35 | - Lab 实践 36 | - Problem Set 作业 37 | 38 | ## 本系列视频提供什么 39 | 40 | - 预习和准备 41 | - 课程重点梳理 42 | - 难点内容讲解 43 | - 习题作业讲解 44 | - 穿插扩展知识,结合实际经验 45 | 46 | ## 个人学习计划安排 47 | 48 | - 周一 预习Notes,了解准备相关的工具 49 | - 周二 课程第一小时 50 | - 周三 课程第二小时 51 | - 周四 短视频部分 52 | - 周五 练习课 53 | - 周末 实践、练习、完成作业 54 | 55 | ## 版权说明 56 | 57 | - [Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/) (CC BY-NC-SA 4.0) 58 | - 非商业目的,可以自由分享、使用 59 | - 分享作品需要以同样的版权声明发布 -------------------------------------------------------------------------------- /notes/static/2024-01-11-21-01-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/notes/static/2024-01-11-21-01-22.png -------------------------------------------------------------------------------- /notes/static/2024-01-11-21-02-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/2013xile/CS50x/1f12a4997886ff7e131175c8749a617c0065a1e5/notes/static/2024-01-11-21-02-00.png -------------------------------------------------------------------------------- /notes/week0.md: -------------------------------------------------------------------------------- 1 | # CS50 Week0 Scratch 2 | 3 | > **课程下标为什么从0开始?** 4 | 很多流行的编程语言的数组下标是从0开始的。 5 | Lua, R等语言的数组下标是从1开始的。 6 | 7 | 8 | ## 二进制 9 | 10 | CPU - 晶体管 - 导通/截止 - 二进制基础 11 | 12 | 0 - false 13 | 1 - true 14 | 15 | bit = binary digit 16 | 17 | 8 bit = 1 Byte (字节) 18 | 19 | 2进制里的1000: 2^10=1024 → 1024B = 1KB, 1024KB=1MB, 1024MB=1GB, … 20 | 21 | ### 十六进制 22 | 23 | 0 - 9, ABCDEF (10 - 15) 24 | 25 | ## 文本 26 | 27 | ### ASCII 28 | 29 | 一个字节代表一个字符,范围 `0x00 - 0x7F` (0 - 127) 30 | 31 | ```C 32 | 'A' + 32 // 'a' 33 | 'a' - 32 // 'A' 34 | ``` 35 | 36 | ### Unicode 37 | 38 | 空间浪费大 39 | 40 | ### UTF-8 41 | 42 | 可变长字符编码 43 | 44 | ## Emoji😊 45 | 46 | - 不同设备字体不同 47 | - 不同肤色 48 | - 再组合 49 | 50 | 👩‍🎓:👩 + ZWJ + 🎓 51 | 52 | [Emoji 到底是什么 - 少数派](https://sspai.com/post/71398) 53 | 54 | 55 | ## 颜色 56 | 57 | ### RGB 58 | 59 | #000000 黑 60 | 61 | #FF0000 红 62 | 63 | #00FF00 绿 64 | 65 | #0000FF 黄 66 | 67 | #FFFFFF 白 68 | 69 | ### RGBA 70 | 71 | ### HSL 72 | 73 | ## 图片、视频、声音 74 | 75 | ## 其他编码 76 | 77 | - 条形码 78 | - 二维码 79 | - 推荐书[《编码》](https://book.douban.com/subject/4822685/) 80 | 81 | ## 算法 82 | 83 | - 二分法 84 | 85 | ## 伪代码 86 | 87 | 88 | 89 | ## Scratch 90 | 91 | [Scratch - Imagine, Program, Share](https://scratch.mit.edu/) 92 | 93 | - 变量 Variables 94 | - 循环 Loops 95 | - 函数 Function 96 | - f(x)=x 97 | - 条件判断 Conditional 98 | 99 | ### 例子 100 | 101 | 102 | 103 | ## 总结 104 | 105 | 106 | 107 | ## 讨论、提问 108 | 109 | - [Discussion](https://github.com/Xilesun/CS50x/discussions) 110 | - [Q & A](https://github.com/Xilesun/CS50x/discussions/categories/q-a) -------------------------------------------------------------------------------- /notes/week1.md: -------------------------------------------------------------------------------- 1 | # CS50 Week1 C 2 | 3 | ## Command line interface 命令行 4 | 5 | - 操作系统 6 | - Unix 7 | - MacOS 8 | - Linux 9 | - Ubuntu, Centos, Debian 10 | - Windows 11 | - WSL https://learn.microsoft.com/en-us/windows/wsl/install 12 | - Terminal vs Shell 13 | - iTerm2 14 | - Zsh (Z Shell) 15 | - https://ohmyz.sh/ 16 | - 常用命令 17 | - `mkdir` make directory 18 | - `ls` list 19 | - `cd` change directory 20 | - 相对路径、绝对路径 21 | - `cp` copy 22 | - `mv` move 23 | - `rm` remove 24 | - `rmdir` remove directory 25 | - `clear` clear 26 | - `man` manual 27 | - 快捷使用 28 | - `ctrl+l` 29 | - `ctrl+a` 30 | - `ctrl+e` 31 | - `ctrl+u` 32 | 33 | ## VSCode 34 | 35 | https://code.visualstudio.com/ 36 | 37 | - Text editor vs IDE (Integrated development environment) 38 | - JetBrains: GoLand, IntelliJ IDEA, PyCharm 39 | - SublimeText 40 | - Atom 41 | - Language server 42 | - https://code.visualstudio.com/api/language-extensions/language-server-extension-guide 43 | - 主题、插件 44 | - 搜索 45 | - 快捷键 46 | - `Command/Ctrl + shift + p` 命令 47 | - `Command/Ctrl + B` 文件管理器 48 | - Ctrl + ` 内置终端 49 | - CS50 lib 50 | - https://github.com/cs50/libcs50 51 | 52 | # 课程内容 53 | 54 | human → source code → compiler → machine code 55 | 56 | correctness, design, style 57 | 58 | ```c 59 | #include 60 | 61 | int main(void) 62 | { 63 | printf("hello, world\n"); 64 | } 65 | ``` 66 | 67 | - make, clang, gcc 68 | - 分号`;` 69 | - `\n` 70 | - header files - libraries 71 | - https://manual.cs50.io/ 72 | - Data types 73 | - char 74 | - double 75 | - float 76 | - int 77 | - long 78 | - bool? C99 79 | - string ? 80 | 81 | [Using a string in CS50 library](https://stackoverflow.com/questions/52140699/using-a-string-in-cs50-library) 82 | 83 | - format code 84 | - `%c` `%s` `%i` `%f` `%.2f` 85 | - %% 86 | - `=` assignment 87 | - `==` equal 88 | - `++` `+=` 89 | - `%` 求余、取模 90 | - Logical Operators 91 | - `==` 92 | - `!=` 93 | - `!` 94 | - `||` 95 | - `&&` 96 | - Conditionals 97 | - If 98 | - If … else … 99 | - If … else if … else … 100 | - switch…case… 101 | - `?:` 102 | - Loop 103 | - while 104 | - for 105 | - do…while… 106 | - Magic Numbers 107 | - `#define` 108 | - Overflow 109 | - 千年虫 110 | - 2038-01-19 111 | - type casting 112 | - 推荐书 \ -------------------------------------------------------------------------------- /notes/week2.md: -------------------------------------------------------------------------------- 1 | # CS50 Week2 Array 2 | 3 | - Parameters形参 VS Arguments实参 4 | - Variable Scope 5 | - Compiling 6 | - `clang hello.c -o hello -lcs50` 7 | - `/usr/include` 8 | - environment variables 9 | - Makefile 10 | - https://makefiletutorial.com/ 11 | - preprocessing 预处理 12 | - 将引用库中的函数复制到一起ddd 13 | - compiling 编译 14 | - 转换为汇编语言 (csapp, mit6.828) 15 | - assembling 汇编 16 | - 转换为机器语言(二进制) 17 | - linking 链接 18 | - 将其他库的代码链接到一起 19 | 20 | 21 | 22 | - Decompiling 23 | - Debug 24 | - Printf 25 | - Breakpoint 26 | - JSON https://www.json.org/json-en.html 27 | - launch.json 28 | - Variables https://code.visualstudio.com/docs/editor/variables-reference 29 | - https://code.visualstudio.com/docs/cpp/launch-json-reference 30 | - lldb vs gdb 31 | - `-g` 32 | - preLaunchTask 33 | - task.json 34 | - run `Command/Ctrl+Shift+B` 35 | - [参考文件](../.vscode/) 36 | -------------------------------------------------------------------------------- /notes/week3.md: -------------------------------------------------------------------------------- 1 | # CS50 Week3 Algorithms 2 | 3 | - Data structures 4 | - encapsulate 封装 5 | - default value (not supported) 6 | 7 | ```C 8 | typedef struct 9 | { 10 | // ... 11 | } 12 | struct_name; 13 | ``` 14 | 15 | - 大 O 表示法 (Big O notation) 16 | - 时间复杂度 17 | - 空间复杂度 18 | - $O(1)$ 19 | - $O(n)$ 20 | - $O(n^2)$ 21 | - $\Omega$(n) - best case 22 | - $\theta$(n) - best case and worst case are the same 23 | 24 | ![](./static/2024-01-11-21-01-22.png) 25 | 26 | - Search 27 | - linear search O(n) 28 | - binary search 29 | - sorted 30 | - $O(\log_{2}n)$ $\frac{n}{2^x} = 1$, x = O($\log_{2}n$) 31 | 32 | ![](./static/2024-01-11-21-02-00.png) 33 | 34 | - Sorting 排序 35 | 36 | - https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html 37 | - Selection sort 选择排序 38 | - $(n - 1) + (n - 2) + ... + 1 =n(n-1) - \frac{[1+(n-1)](n-1)}{2}=\frac{n(n-1)}{2}=\frac{1}{2}n^2-\frac{1}{2}n$ 39 | - $O(n^2)$ 40 | - Bubble sort 冒泡排序 41 | - $O(n^2)$ 42 | - $\Omega(n)$ 43 | - 递归 Recursion 44 | - a function calls itself. 45 | - Merge sort 归并排序 46 | - more space 47 | - $O(nlog_{2}n)$ 48 | 49 | $$ 50 | T(n)=2T(\frac{n}{2})+n \to T(n)=2^kT(\frac{n}{2^k})+ kn 51 | $$ 52 | 53 | $$ 54 | \frac{n}{2^k}=1,n=2^k,T(1)=0 \to T(2^k)=2^kT(1)+kn=kn \to k=\log_{2}n, T(n)=n\log_{2}n 55 | $$ 56 | --------------------------------------------------------------------------------