├── .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 | 
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 | 
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 | 
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 |
--------------------------------------------------------------------------------