Space and Time Complexity

Space complexity refers to the amount of memory used by an algorithm to complete its execution, as a function of the size of the input. The space complexity of an algorithm can be affected by various factors such as the size of the input data, the data structures used in the algorithm, the number and size of temporary variables, and the recursion depth. Time complexity refers to the amount of time required by an algorithm to run as the input size grows. It is usually measured in terms of the "Big O" notation, which describes the upper bound of an algorithm's time complexity.

Why do you think a programmer should care about space and time complexity?

  • In a video game for example, the reaction time of a character has to do with time. Space has to do with how large an image may be for example. At times time and space can be related, a larger image may take a longer time to render. Without considering space time complexity of an algortithm can make it inefficient and take away from the program's purpose. In addition, not considering complexity can make the program an inconvinience for users.

Take a look at our lassen volcano example from the data compression tech talk. The first code block is the original image. In the second code block, change the baseWidth to rescale the image.

from IPython.display import Image, display
from pathlib import Path 

# prepares a series of images
def image_data(path=Path("images/"), images=None):  # path of static images is defaulted
    for image in images:
        # File to open
        image['filename'] = path / image['file']  # file with path
    return images

def image_display(images):
    for image in images:  
        display(Image(filename=image['filename']))

if __name__ == "__main__":
    lassen_volcano = image_data(images=[{'source': "Peter Carolin", 'label': "Lassen Volcano", 'file': "lassen-volcano.jpg"}])
    image_display(lassen_volcano)
    
from IPython.display import HTML, display
from pathlib import Path 
from PIL import Image as pilImage 
from io import BytesIO
import base64

# prepares a series of images
def image_data(path=Path("images/"), images=None):  # path of static images is defaulted
    for image in images:
        # File to open
        image['filename'] = path / image['file']  # file with path
    return images

def scale_image(img):
    #baseWidth = 625
    #baseWidth = 1250
    #baseWidth = 2500
    baseWidth = 5000 # see the effect of doubling or halfing the baseWidth 
    #baseWidth = 10000 
    #baseWidth = 20000
    #baseWidth = 40000
    scalePercent = (baseWidth/float(img.size[0]))
    scaleHeight = int((float(img.size[1])*float(scalePercent)))
    scale = (baseWidth, scaleHeight)
    return img.resize(scale)

def image_to_base64(img, format):
    with BytesIO() as buffer:
        img.save(buffer, format)
        return base64.b64encode(buffer.getvalue()).decode()
    
def image_management(image):  # path of static images is defaulted        
    # Image open return PIL image object
    img = pilImage.open(image['filename'])
    
    # Python Image Library operations
    image['format'] = img.format
    image['mode'] = img.mode
    image['size'] = img.size
    image['width'], image['height'] = img.size
    image['pixels'] = image['width'] * image['height']
    # Scale the Image
    img = scale_image(img)
    image['pil'] = img
    image['scaled_size'] = img.size
    image['scaled_width'], image['scaled_height'] = img.size
    image['scaled_pixels'] = image['scaled_width'] * image['scaled_height']
    # Scaled HTML
    image['html'] = '<img src="data:image/png;base64,%s">' % image_to_base64(image['pil'], image['format'])


if __name__ == "__main__":
    # Use numpy to concatenate two arrays
    images = image_data(images = [{'source': "Peter Carolin", 'label': "Lassen Volcano", 'file': "lassen-volcano.jpg"}])
    
    # Display meta data, scaled view, and grey scale for each image
    for image in images:
        image_management(image)
        print("---- meta data -----")
        print(image['label'])
        print(image['source'])
        print(image['format'])
        print(image['mode'])
        print("Original size: ", image['size'], " pixels: ", f"{image['pixels']:,}")
        print("Scaled size: ", image['scaled_size'], " pixels: ", f"{image['scaled_pixels']:,}")
        
        print("-- original image --")
        display(HTML(image['html'])) 
---- meta data -----
Lassen Volcano
Peter Carolin
JPEG
RGB
Original size:  (2792, 2094)  pixels:  5,846,448
Scaled size:  (5000, 3750)  pixels:  18,750,000
-- original image --

Do you think this is a time complexity or space complexity or both problem?

  • I think it is both. In this case space and time is related in that a larger image takes a longer time to render, as it didn't show for a long time.

Big O Notation

  • Constant O(1)
  • Linear O(n)
  • Quadratic O(n^2)
  • Logarithmic O(logn)
  • Exponential (O(2^n))
numbers = list(range(1000))

Constant O(1)

Time

An example of a constant time algorithm is accessing a specific element in an array. It does not matter how large the array is, accessing an element in the array takes the same amount of time. Therefore, the time complexity of this operation is constant, denoted by O(1).

print(numbers[263])

ncaa_bb_ranks = {1:"Alabama",2:"Houston", 3:"Purdue", 4:"Kansas"}
#look up a value in a dictionary given a key
print(ncaa_bb_ranks[1]) 
263
Alabama

Space

This function takes two number inputs and returns their sum. The function does not create any additional data structures or variables that are dependent on the input size, so its space complexity is constant, or O(1). Regardless of how large the input numbers are, the function will always require the same amount of memory to execute.

def sum(a, b): 
  return a + b

Linear O(n)

Time

An example of a linear time algorithm is traversing a list or an array. When the size of the list or array increases, the time taken to traverse it also increases linearly with the size. Hence, the time complexity of this operation is O(n), where n is the size of the list or array being traversed.

for i in numbers:
    print(i)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999

Space

This function takes a list of elements arr as input and returns a new list with the elements in reverse order. The function creates a new list reversed_arr of the same size as arr to store the reversed elements. The size of reversed_arr depends on the size of the input arr, so the space complexity of this function is O(n). As the input size increases, the amount of memory required to execute the function also increases linearly.

def reverse_list(arr):
    n = len(arr) 
    reversed_arr = [None] * n #create a list of None based on the length or arr
    for i in range(n):
        reversed_arr[n-i-1] = arr[i] #stores the value at the index of arr to the value at the index of reversed_arr starting at the beginning for arr and end for reversed_arr 
    return reversed_arr

print(numbers)
print(reverse_list(numbers))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999]
[999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Quadratic O(n^2)

Time

An example of a quadratic time algorithm is nested loops. When there are two nested loops that both iterate over the same collection, the time taken to complete the algorithm grows quadratically with the size of the collection. Hence, the time complexity of this operation is O(n^2), where n is the size of the collection being iterated over.

for i in numbers:
    for j in numbers:
        print(i,j)
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
0 13
0 14
0 15
0 16
0 17
0 18
0 19
0 20
0 21
0 22
0 23
0 24
0 25
0 26
0 27
0 28
0 29
0 30
0 31
0 32
0 33
0 34
0 35
0 36
0 37
0 38
0 39
0 40
0 41
0 42
0 43
0 44
0 45
0 46
0 47
0 48
0 49
0 50
0 51
0 52
0 53
0 54
0 55
0 56
0 57
0 58
0 59
0 60
0 61
0 62
0 63
0 64
0 65
0 66
0 67
0 68
0 69
0 70
0 71
0 72
0 73
0 74
0 75
0 76
0 77
0 78
0 79
0 80
0 81
0 82
0 83
0 84
0 85
0 86
0 87
0 88
0 89
0 90
0 91
0 92
0 93
0 94
0 95
0 96
0 97
0 98
0 99
0 100
0 101
0 102
0 103
0 104
0 105
0 106
0 107
0 108
0 109
0 110
0 111
0 112
0 113
0 114
0 115
0 116
0 117
0 118
0 119
0 120
0 121
0 122
0 123
0 124
0 125
0 126
0 127
0 128
0 129
0 130
0 131
0 132
0 133
0 134
0 135
0 136
0 137
0 138
0 139
0 140
0 141
0 142
0 143
0 144
0 145
0 146
0 147
0 148
0 149
0 150
0 151
0 152
0 153
0 154
0 155
0 156
0 157
0 158
0 159
0 160
0 161
0 162
0 163
0 164
0 165
0 166
0 167
0 168
0 169
0 170
0 171
0 172
0 173
0 174
0 175
0 176
0 177
0 178
0 179
0 180
0 181
0 182
0 183
0 184
0 185
0 186
0 187
0 188
0 189
0 190
0 191
0 192
0 193
0 194
0 195
0 196
0 197
0 198
0 199
0 200
0 201
0 202
0 203
0 204
0 205
0 206
0 207
0 208
0 209
0 210
0 211
0 212
0 213
0 214
0 215
0 216
0 217
0 218
0 219
0 220
0 221
0 222
0 223
0 224
0 225
0 226
0 227
0 228
0 229
0 230
0 231
0 232
0 233
0 234
0 235
0 236
0 237
0 238
0 239
0 240
0 241
0 242
0 243
0 244
0 245
0 246
0 247
0 248
0 249
0 250
0 251
0 252
0 253
0 254
0 255
0 256
0 257
0 258
0 259
0 260
0 261
0 262
0 263
0 264
0 265
0 266
0 267
0 268
0 269
0 270
0 271
0 272
0 273
0 274
0 275
0 276
0 277
0 278
0 279
0 280
0 281
0 282
0 283
0 284
0 285
0 286
0 287
0 288
0 289
0 290
0 291
0 292
0 293
0 294
0 295
0 296
0 297
0 298
0 299
0 300
0 301
0 302
0 303
0 304
0 305
0 306
0 307
0 308
0 309
0 310
0 311
0 312
0 313
0 314
0 315
0 316
0 317
0 318
0 319
0 320
0 321
0 322
0 323
0 324
0 325
0 326
0 327
0 328
0 329
0 330
0 331
0 332
0 333
0 334
0 335
0 336
0 337
0 338
0 339
0 340
0 341
0 342
0 343
0 344
0 345
0 346
0 347
0 348
0 349
0 350
0 351
0 352
0 353
0 354
0 355
0 356
0 357
0 358
0 359
0 360
0 361
0 362
0 363
0 364
0 365
0 366
0 367
0 368
0 369
0 370
0 371
0 372
0 373
0 374
0 375
0 376
0 377
0 378
0 379
0 380
0 381
0 382
0 383
0 384
0 385
0 386
0 387
0 388
0 389
0 390
0 391
0 392
0 393
0 394
0 395
0 396
0 397
0 398
0 399
0 400
0 401
0 402
0 403
0 404
0 405
0 406
0 407
0 408
0 409
0 410
0 411
0 412
0 413
0 414
0 415
0 416
0 417
0 418
0 419
0 420
0 421
0 422
0 423
0 424
0 425
0 426
0 427
0 428
0 429
0 430
0 431
0 432
0 433
0 434
0 435
0 436
0 437
0 438
0 439
0 440
0 441
0 442
0 443
0 444
0 445
0 446
0 447
0 448
0 449
0 450
0 451
0 452
0 453
0 454
0 455
0 456
0 457
0 458
0 459
0 460
0 461
0 462
0 463
0 464
0 465
0 466
0 467
0 468
0 469
0 470
0 471
0 472
0 473
0 474
0 475
0 476
0 477
0 478
0 479
0 480
0 481
0 482
0 483
0 484
0 485
0 486
0 487
0 488
0 489
0 490
0 491
0 492
0 493
0 494
0 495
0 496
0 497
0 498
0 499
0 500
0 501
0 502
0 503
0 504
0 505
0 506
0 507
0 508
0 509
0 510
0 511
0 512
0 513
0 514
0 515
0 516
0 517
0 518
0 519
0 520
0 521
0 522
0 523
0 524
0 525
0 526
0 527
0 528
0 529
0 530
0 531
0 532
0 533
0 534
0 535
0 536
0 537
0 538
0 539
0 540
0 541
0 542
0 543
0 544
0 545
0 546
0 547
0 548
0 549
0 550
0 551
0 552
0 553
0 554
0 555
0 556
0 557
0 558
0 559
0 560
0 561
0 562
0 563
0 564
0 565
0 566
0 567
0 568
0 569
0 570
0 571
0 572
0 573
0 574
0 575
0 576
0 577
0 578
0 579
0 580
0 581
0 582
0 583
0 584
0 585
0 586
0 587
0 588
0 589
0 590
0 591
0 592
0 593
0 594
0 595
0 596
0 597
0 598
0 599
0 600
0 601
0 602
0 603
0 604
0 605
0 606
0 607
0 608
0 609
0 610
0 611
0 612
0 613
0 614
0 615
0 616
0 617
0 618
0 619
0 620
0 621
0 622
0 623
0 624
0 625
0 626
0 627
0 628
0 629
0 630
0 631
0 632
0 633
0 634
0 635
0 636
0 637
0 638
0 639
0 640
0 641
0 642
0 643
0 644
0 645
0 646
0 647
0 648
0 649
0 650
0 651
0 652
0 653
0 654
0 655
0 656
0 657
0 658
0 659
0 660
0 661
0 662
0 663
0 664
0 665
0 666
0 667
0 668
0 669
0 670
0 671
0 672
0 673
0 674
0 675
0 676
0 677
0 678
0 679
0 680
0 681
0 682
0 683
0 684
0 685
0 686
0 687
0 688
0 689
0 690
0 691
0 692
0 693
0 694
0 695
0 696
0 697
0 698
0 699
0 700
0 701
0 702
0 703
0 704
0 705
0 706
0 707
0 708
0 709
0 710
0 711
0 712
0 713
0 714
0 715
0 716
0 717
0 718
0 719
0 720
0 721
0 722
0 723
0 724
0 725
0 726
0 727
0 728
0 729
0 730
0 731
0 732
0 733
0 734
0 735
0 736
0 737
0 738
0 739
0 740
0 741
0 742
0 743
0 744
0 745
0 746
0 747
0 748
0 749
0 750
0 751
0 752
0 753
0 754
0 755
0 756
0 757
0 758
0 759
0 760
0 761
0 762
0 763
0 764
0 765
0 766
0 767
0 768
0 769
0 770
0 771
0 772
0 773
0 774
0 775
0 776
0 777
0 778
0 779
0 780
0 781
0 782
0 783
0 784
0 785
0 786
0 787
0 788
0 789
0 790
0 791
0 792
0 793
0 794
0 795
0 796
0 797
0 798
0 799
0 800
0 801
0 802
0 803
0 804
0 805
0 806
0 807
0 808
0 809
0 810
0 811
0 812
0 813
0 814
0 815
0 816
0 817
0 818
0 819
0 820
0 821
0 822
0 823
0 824
0 825
0 826
0 827
0 828
0 829
0 830
0 831
0 832
0 833
0 834
0 835
0 836
0 837
0 838
0 839
0 840
0 841
0 842
0 843
0 844
0 845
0 846
0 847
0 848
0 849
0 850
0 851
0 852
0 853
0 854
0 855
0 856
0 857
0 858
0 859
0 860
0 861
0 862
0 863
0 864
0 865
0 866
0 867
0 868
0 869
0 870
0 871
0 872
0 873
0 874
0 875
0 876
0 877
0 878
0 879
0 880
0 881
0 882
0 883
0 884
0 885
0 886
0 887
0 888
0 889
0 890
0 891
0 892
0 893
0 894
0 895
0 896
0 897
0 898
0 899
0 900
0 901
0 902
0 903
0 904
0 905
0 906
0 907
0 908
0 909
0 910
0 911
0 912
0 913
0 914
0 915
0 916
0 917
0 918
0 919
0 920
0 921
0 922
0 923
0 924
0 925
0 926
0 927
0 928
0 929
0 930
0 931
0 932
0 933
0 934
0 935
0 936
0 937
0 938
0 939
0 940
0 941
0 942
0 943
0 944
0 945
0 946
0 947
0 948
0 949
0 950
0 951
0 952
0 953
0 954
0 955
0 956
0 957
0 958
0 959
0 960
0 961
0 962
0 963
0 964
0 965
0 966
0 967
0 968
0 969
0 970
0 971
0 972
0 973
0 974
0 975
0 976
0 977
0 978
0 979
0 980
0 981
0 982
0 983
0 984
0 985
0 986
0 987
0 988
0 989
0 990
0 991
0 992
0 993
0 994
0 995
0 996
0 997
0 998
0 999
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
1 61
1 62
1 63
1 64
1 65
1 66
1 67
1 68
1 69
1 70
1 71
1 72
1 73
1 74
1 75
1 76
1 77
1 78
1 79
1 80
1 81
1 82
1 83
1 84
1 85
1 86
1 87
1 88
1 89
1 90
1 91
1 92
1 93
1 94
1 95
1 96
1 97
1 98
1 99
1 100
1 101
1 102
1 103
1 104
1 105
1 106
1 107
1 108
1 109
1 110
1 111
1 112
1 113
1 114
1 115
1 116
1 117
1 118
1 119
1 120
1 121
1 122
1 123
1 124
1 125
1 126
1 127
1 128
1 129
1 130
1 131
1 132
1 133
1 134
1 135
1 136
1 137
1 138
1 139
1 140
1 141
1 142
1 143
1 144
1 145
1 146
1 147
1 148
1 149
1 150
1 151
1 152
1 153
1 154
1 155
1 156
1 157
1 158
1 159
1 160
1 161
1 162
1 163
1 164
1 165
1 166
1 167
1 168
1 169
1 170
1 171
1 172
1 173
1 174
1 175
1 176
1 177
1 178
1 179
1 180
1 181
1 182
1 183
1 184
1 185
1 186
1 187
1 188
1 189
1 190
1 191
1 192
1 193
1 194
1 195
1 196
1 197
1 198
1 199
1 200
1 201
1 202
1 203
1 204
1 205
1 206
1 207
1 208
1 209
1 210
1 211
1 212
1 213
1 214
1 215
1 216
1 217
1 218
1 219
1 220
1 221
1 222
1 223
1 224
1 225
1 226
1 227
1 228
1 229
1 230
1 231
1 232
1 233
1 234
1 235
1 236
1 237
1 238
1 239
1 240
1 241
1 242
1 243
1 244
1 245
1 246
1 247
1 248
1 249
1 250
1 251
1 252
1 253
1 254
1 255
1 256
1 257
1 258
1 259
1 260
1 261
1 262
1 263
1 264
1 265
1 266
1 267
1 268
1 269
1 270
1 271
1 272
1 273
1 274
1 275
1 276
1 277
1 278
1 279
1 280
1 281
1 282
1 283
1 284
1 285
1 286
1 287
1 288
1 289
1 290
1 291
1 292
1 293
1 294
1 295
1 296
1 297
1 298
1 299
1 300
1 301
1 302
1 303
1 304
1 305
1 306
1 307
1 308
1 309
1 310
1 311
1 312
1 313
1 314
1 315
1 316
1 317
1 318
1 319
1 320
1 321
1 322
1 323
1 324
1 325
1 326
1 327
1 328
1 329
1 330
1 331
1 332
1 333
1 334
1 335
1 336
1 337
1 338
1 339
1 340
1 341
1 342
1 343
1 344
1 345
1 346
1 347
1 348
1 349
1 350
1 351
1 352
1 353
1 354
1 355
1 356
1 357
1 358
1 359
1 360
1 361
1 362
1 363
1 364
1 365
1 366
1 367
1 368
1 369
1 370
1 371
1 372
1 373
1 374
1 375
1 376
1 377
1 378
1 379
1 380
1 381
1 382
1 383
1 384
1 385
1 386
1 387
1 388
1 389
1 390
1 391
1 392
1 393
1 394
1 395
1 396
1 397
1 398
1 399
1 400
1 401
1 402
1 403
1 404
1 405
1 406
1 407
1 408
1 409
1 410
1 411
1 412
1 413
1 414
1 415
1 416
1 417
1 418
1 419
1 420
1 421
1 422
1 423
1 424
1 425
1 426
1 427
1 428
1 429
1 430
1 431
1 432
1 433
1 434
1 435
1 436
1 437
1 438
1 439
1 440
1 441
1 442
1 443
1 444
1 445
1 446
1 447
1 448
1 449
1 450
1 451
1 452
1 453
1 454
1 455
1 456
1 457
1 458
1 459
1 460
1 461
1 462
1 463
1 464
1 465
1 466
1 467
1 468
1 469
1 470
1 471
1 472
1 473
1 474
1 475
1 476
1 477
1 478
1 479
1 480
1 481
1 482
1 483
1 484
1 485
1 486
1 487
1 488
1 489
1 490
1 491
1 492
1 493
1 494
1 495
1 496
1 497
1 498
1 499
1 500
1 501
1 502
1 503
1 504
1 505
1 506
1 507
1 508
1 509
1 510
1 511
1 512
1 513
1 514
1 515
1 516
1 517
1 518
1 519
1 520
1 521
1 522
1 523
1 524
1 525
1 526
1 527
1 528
1 529
1 530
1 531
1 532
1 533
1 534
1 535
1 536
1 537
1 538
1 539
1 540
1 541
1 542
1 543
1 544
1 545
1 546
1 547
1 548
1 549
1 550
1 551
1 552
1 553
1 554
1 555
1 556
1 557
1 558
1 559
1 560
1 561
1 562
1 563
1 564
1 565
1 566
1 567
1 568
1 569
1 570
1 571
1 572
1 573
1 574
1 575
1 576
1 577
1 578
1 579
1 580
1 581
1 582
1 583
1 584
1 585
1 586
1 587
1 588
1 589
1 590
1 591
1 592
1 593
1 594
1 595
1 596
1 597
1 598
1 599
1 600
1 601
1 602
1 603
1 604
1 605
1 606
1 607
1 608
1 609
1 610
1 611
1 612
1 613
1 614
1 615
1 616
1 617
1 618
1 619
1 620
1 621
1 622
1 623
1 624
1 625
1 626
1 627
1 628
1 629
1 630
1 631
1 632
1 633
1 634
1 635
1 636
1 637
1 638
1 639
1 640
1 641
1 642
1 643
1 644
1 645
1 646
1 647
1 648
1 649
1 650
1 651
1 652
1 653
1 654
1 655
1 656
1 657
1 658
1 659
1 660
1 661
1 662
1 663
1 664
1 665
1 666
1 667
1 668
1 669
1 670
1 671
1 672
1 673
1 674
1 675
1 676
1 677
1 678
1 679
1 680
1 681
1 682
1 683
1 684
1 685
1 686
1 687
1 688
1 689
1 690
1 691
1 692
1 693
1 694
1 695
1 696
1 697
1 698
1 699
1 700
1 701
1 702
1 703
1 704
1 705
1 706
1 707
1 708
1 709
1 710
1 711
1 712
1 713
1 714
1 715
1 716
1 717
1 718
1 719
1 720
1 721
1 722
1 723
1 724
1 725
1 726
1 727
1 728
1 729
1 730
1 731
1 732
1 733
1 734
1 735
1 736
1 737
1 738
1 739
1 740
1 741
1 742
1 743
1 744
1 745
1 746
1 747
1 748
1 749
1 750
1 751
1 752
1 753
1 754
1 755
1 756
1 757
1 758
1 759
1 760
1 761
1 762
1 763
1 764
1 765
1 766
1 767
1 768
1 769
1 770
1 771
1 772
1 773
1 774
1 775
1 776
1 777
1 778
1 779
1 780
1 781
1 782
1 783
1 784
1 785
1 786
1 787
1 788
1 789
1 790
1 791
1 792
1 793
1 794
1 795
1 796
1 797
1 798
1 799
1 800
1 801
1 802
1 803
1 804
1 805
1 806
1 807
1 808
1 809
1 810
1 811
1 812
1 813
1 814
1 815
1 816
1 817
1 818
1 819
1 820
1 821
1 822
1 823
1 824
1 825
1 826
1 827
1 828
1 829
1 830
1 831
1 832
1 833
1 834
1 835
1 836
1 837
1 838
1 839
1 840
1 841
1 842
1 843
1 844
1 845
1 846
1 847
1 848
1 849
1 850
1 851
1 852
1 853
1 854
1 855
1 856
1 857
1 858
1 859
1 860
1 861
1 862
1 863
1 864
1 865
1 866
1 867
1 868
1 869
1 870
1 871
1 872
1 873
1 874
1 875
1 876
1 877
1 878
1 879
1 880
1 881
1 882
1 883
1 884
1 885
1 886
1 887
1 888
1 889
1 890
1 891
1 892
1 893
1 894
1 895
1 896
1 897
1 898
1 899
1 900
1 901
1 902
1 903
1 904
1 905
1 906
1 907
1 908
1 909
1 910
1 911
1 912
1 913
1 914
1 915
1 916
1 917
1 918
1 919
1 920
1 921
1 922
1 923
1 924
1 925
1 926
1 927
1 928
1 929
1 930
1 931
1 932
1 933
1 934
1 935
1 936
1 937
1 938
1 939
1 940
1 941
1 942
1 943
1 944
1 945
1 946
1 947
1 948
1 949
1 950
1 951
1 952
1 953
1 954
1 955
1 956
1 957
1 958
1 959
1 960
1 961
1 962
1 963
1 964
1 965
1 966
1 967
1 968
1 969
1 970
1 971
1 972
1 973
1 974
1 975
1 976
1 977
1 978
1 979
1 980
1 981
1 982
1 983
1 984
1 985
1 986
1 987
1 988
1 989
1 990
1 991
1 992
1 993
1 994
1 995
1 996
1 997
1 998
1 999
2 0
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
2 10
2 11
2 12
2 13
2 14
2 15
2 16
2 17
2 18
2 19
2 20
2 21
2 22
2 23
2 24
2 25
2 26
2 27
2 28
2 29
2 30
2 31
2 32
2 33
2 34
2 35
2 36
2 37
2 38
2 39
2 40
2 41
2 42
2 43
2 44
2 45
2 46
2 47
2 48
2 49
2 50
2 51
2 52
2 53
2 54
2 55
2 56
2 57
2 58
2 59
2 60
2 61
2 62
2 63
2 64
2 65
2 66
2 67
2 68
2 69
2 70
2 71
2 72
2 73
2 74
2 75
2 76
2 77
2 78
2 79
2 80
2 81
2 82
2 83
2 84
2 85
2 86
2 87
2 88
2 89
2 90
2 91
2 92
2 93
2 94
2 95
2 96
2 97
2 98
2 99
2 100
2 101
2 102
2 103
2 104
2 105
2 106
2 107
2 108
2 109
2 110
2 111
2 112
2 113
2 114
2 115
2 116
2 117
2 118
2 119
2 120
2 121
2 122
2 123
2 124
2 125
2 126
2 127
2 128
2 129
2 130
2 131
2 132
2 133
2 134
2 135
2 136
2 137
2 138
2 139
2 140
2 141
2 142
2 143
2 144
2 145
2 146
2 147
2 148
2 149
2 150
2 151
2 152
2 153
2 154
2 155
2 156
2 157
2 158
2 159
2 160
2 161
2 162
2 163
2 164
2 165
2 166
2 167
2 168
2 169
2 170
2 171
2 172
2 173
2 174
2 175
2 176
2 177
2 178
2 179
2 180
2 181
2 182
2 183
2 184
2 185
2 186
2 187
2 188
2 189
2 190
2 191
2 192
2 193
2 194
2 195
2 196
2 197
2 198
2 199
2 200
2 201
2 202
2 203
2 204
2 205
2 206
2 207
2 208
2 209
2 210
2 211
2 212
2 213
2 214
2 215
2 216
2 217
2 218
2 219
2 220
2 221
2 222
2 223
2 224
2 225
2 226
2 227
2 228
2 229
2 230
2 231
2 232
2 233
2 234
2 235
2 236
2 237
2 238
2 239
2 240
2 241
2 242
2 243
2 244
2 245
2 246
2 247
2 248
2 249
2 250
2 251
2 252
2 253
2 254
2 255
2 256
2 257
2 258
2 259
2 260
2 261
2 262
2 263
2 264
2 265
2 266
2 267
2 268
2 269
2 270
2 271
2 272
2 273
2 274
2 275
2 276
2 277
2 278
2 279
2 280
2 281
2 282
2 283
2 284
2 285
2 286
2 287
2 288
2 289
2 290
2 291
2 292
2 293
2 294
2 295
2 296
2 297
2 298
2 299
2 300
2 301
2 302
2 303
2 304
2 305
2 306
2 307
2 308
2 309
2 310
2 311
2 312
2 313
2 314
2 315
2 316
2 317
2 318
2 319
2 320
2 321
2 322
2 323
2 324
2 325
2 326
2 327
2 328
2 329
2 330
2 331
2 332
2 333
2 334
2 335
2 336
2 337
2 338
2 339
2 340
2 341
2 342
2 343
2 344
2 345
2 346
2 347
2 348
2 349
2 350
2 351
2 352
2 353
2 354
2 355
2 356
2 357
2 358
2 359
2 360
2 361
2 362
2 363
2 364
2 365
2 366
2 367
2 368
2 369
2 370
2 371
2 372
2 373
2 374
2 375
2 376
2 377
2 378
2 379
2 380
2 381
2 382
2 383
2 384
2 385
2 386
2 387
2 388
2 389
2 390
2 391
2 392
2 393
2 394
2 395
2 396
2 397
2 398
2 399
2 400
2 401
2 402
2 403
2 404
2 405
2 406
2 407
2 408
2 409
2 410
2 411
2 412
2 413
2 414
2 415
2 416
2 417
2 418
2 419
2 420
2 421
2 422
2 423
2 424
2 425
2 426
2 427
2 428
2 429
2 430
2 431
2 432
2 433
2 434
2 435
2 436
2 437
2 438
2 439
2 440
2 441
2 442
2 443
2 444
2 445
2 446
2 447
2 448
2 449
2 450
2 451
2 452
2 453
2 454
2 455
2 456
2 457
2 458
2 459
2 460
2 461
2 462
2 463
2 464
2 465
2 466
2 467
2 468
2 469
2 470
2 471
2 472
2 473
2 474
2 475
2 476
2 477
2 478
2 479
2 480
2 481
2 482
2 483
2 484
2 485
2 486
2 487
2 488
2 489
2 490
2 491
2 492
2 493
2 494
2 495
2 496
2 497
2 498
2 499
2 500
2 501
2 502
2 503
2 504
2 505
2 506
2 507
2 508
2 509
2 510
2 511
2 512
2 513
2 514
2 515
2 516
2 517
2 518
2 519
2 520
2 521
2 522
2 523
2 524
2 525
2 526
2 527
2 528
2 529
2 530
2 531
2 532
2 533
2 534
2 535
2 536
2 537
2 538
2 539
2 540
2 541
2 542
2 543
2 544
2 545
2 546
2 547
2 548
2 549
2 550
2 551
2 552
2 553
2 554
2 555
2 556
2 557
2 558
2 559
2 560
2 561
2 562
2 563
2 564
2 565
2 566
2 567
2 568
2 569
2 570
2 571
2 572
2 573
2 574
2 575
2 576
2 577
2 578
2 579
2 580
2 581
2 582
2 583
2 584
2 585
2 586
2 587
2 588
2 589
2 590
2 591
2 592
2 593
2 594
2 595
2 596
2 597
2 598
2 599
2 600
2 601
2 602
2 603
2 604
2 605
2 606
2 607
2 608
2 609
2 610
2 611
2 612
2 613
2 614
2 615
2 616
2 617
2 618
2 619
2 620
2 621
2 622
2 623
2 624
2 625
2 626
2 627
2 628
2 629
2 630
2 631
2 632
2 633
2 634
2 635
2 636
2 637
2 638
2 639
2 640
2 641
2 642
2 643
2 644
2 645
2 646
2 647
2 648
2 649
2 650
2 651
2 652
2 653
2 654
2 655
2 656
2 657
2 658
2 659
2 660
2 661
2 662
2 663
2 664
2 665
2 666
2 667
2 668
2 669
2 670
2 671
2 672
2 673
2 674
2 675
2 676
2 677
2 678
2 679
2 680
2 681
2 682
2 683
2 684
2 685
2 686
2 687
2 688
2 689
2 690
2 691
2 692
2 693
2 694
2 695
2 696
2 697
2 698
2 699
2 700
2 701
2 702
2 703
2 704
2 705
2 706
2 707
2 708
2 709
2 710
2 711
2 712
2 713
2 714
2 715
2 716
2 717
2 718
2 719
2 720
2 721
2 722
2 723
2 724
2 725
2 726
2 727
2 728
2 729
2 730
2 731
2 732
2 733
2 734
2 735
2 736
2 737
2 738
2 739
2 740
2 741
2 742
2 743
2 744
2 745
2 746
2 747
2 748
2 749
2 750
2 751
2 752
2 753
2 754
2 755
2 756
2 757
2 758
2 759
2 760
2 761
2 762
2 763
2 764
2 765
2 766
2 767
2 768
2 769
2 770
2 771
2 772
2 773
2 774
2 775
2 776
2 777
2 778
2 779
2 780
2 781
2 782
2 783
2 784
2 785
2 786
2 787
2 788
2 789
2 790
2 791
2 792
2 793
2 794
2 795
2 796
2 797
2 798
2 799
2 800
2 801
2 802
2 803
2 804
2 805
2 806
2 807
2 808
2 809
2 810
2 811
2 812
2 813
2 814
2 815
2 816
2 817
2 818
2 819
2 820
2 821
2 822
2 823
2 824
2 825
2 826
2 827
2 828
2 829
2 830
2 831
2 832
2 833
2 834
2 835
2 836
2 837
2 838
2 839
2 840
2 841
2 842
2 843
2 844
2 845
2 846
2 847
2 848
2 849
2 850
2 851
2 852
2 853
2 854
2 855
2 856
2 857
2 858
2 859
2 860
2 861
2 862
2 863
2 864
2 865
2 866
2 867
2 868
2 869
2 870
2 871
2 872
2 873
2 874
2 875
2 876
2 877
2 878
2 879
2 880
2 881
2 882
2 883
2 884
2 885
2 886
2 887
2 888
2 889
2 890
2 891
2 892
2 893
2 894
2 895
2 896
2 897
2 898
2 899
2 900
2 901
2 902
2 903
2 904
2 905
2 906
2 907
2 908
2 909
2 910
2 911
2 912
2 913
2 914
2 915
2 916
2 917
2 918
2 919
2 920
2 921
2 922
2 923
2 924
2 925
2 926
2 927
2 928
2 929
2 930
2 931
2 932
2 933
2 934
2 935
2 936
2 937
2 938
2 939
2 940
2 941
2 942
2 943
2 944
2 945
2 946
2 947
2 948
2 949
2 950
2 951
2 952
2 953
2 954
2 955
2 956
2 957
2 958
2 959
2 960
2 961
2 962
2 963
2 964
2 965
2 966
2 967
2 968
2 969
2 970
2 971
2 972
2 973
2 974
2 975
2 976
2 977
2 978
2 979
2 980
2 981
2 982
2 983
2 984
2 985
2 986
2 987
2 988
2 989
2 990
2 991
2 992
2 993
2 994
2 995
2 996
2 997
2 998
2 999
3 0
3 1
3 2
3 3
3 4
3 5
3 6
3 7
3 8
3 9
3 10
3 11
3 12
3 13
3 14
3 15
3 16
3 17
3 18
3 19
3 20
3 21
3 22
3 23
3 24
3 25
3 26
3 27
3 28
3 29
3 30
3 31
3 32
3 33
3 34
3 35
3 36
3 37
3 38
3 39
3 40
3 41
3 42
3 43
3 44
3 45
3 46
3 47
3 48
3 49
3 50
3 51
3 52
3 53
3 54
3 55
3 56
3 57
3 58
3 59
3 60
3 61
3 62
3 63
3 64
3 65
3 66
3 67
3 68
3 69
3 70
3 71
3 72
3 73
3 74
3 75
3 76
3 77
3 78
3 79
3 80
3 81
3 82
3 83
3 84
3 85
3 86
3 87
3 88
3 89
3 90
3 91
3 92
3 93
3 94
3 95
3 96
3 97
3 98
3 99
3 100
3 101
3 102
3 103
3 104
3 105
3 106
3 107
3 108
3 109
3 110
3 111
3 112
3 113
3 114
3 115
3 116
3 117
3 118
3 119
3 120
3 121
3 122
3 123
3 124
3 125
3 126
3 127
3 128
3 129
3 130
3 131
3 132
3 133
3 134
3 135
3 136
3 137
3 138
3 139
3 140
3 141
3 142
3 143
3 144
3 145
3 146
3 147
3 148
3 149
3 150
3 151
3 152
3 153
3 154
3 155
3 156
3 157
3 158
3 159
3 160
3 161
3 162
3 163
3 164
3 165
3 166
3 167
3 168
3 169
3 170
3 171
3 172
3 173
3 174
3 175
3 176
3 177
3 178
3 179
3 180
3 181
3 182
3 183
3 184
3 185
3 186
3 187
3 188
3 189
3 190
3 191
3 192
3 193
3 194
3 195
3 196
3 197
3 198
3 199
3 200
3 201
3 202
3 203
3 204
3 205
3 206
3 207
3 208
3 209
3 210
3 211
3 212
3 213
3 214
3 215
3 216
3 217
3 218
3 219
3 220
3 221
3 222
3 223
3 224
3 225
3 226
3 227
3 228
3 229
3 230
3 231
3 232
3 233
3 234
3 235
3 236
3 237
3 238
3 239
3 240
3 241
3 242
3 243
3 244
3 245
3 246
3 247
3 248
3 249
3 250
3 251
3 252
3 253
3 254
3 255
3 256
3 257
3 258
3 259
3 260
3 261
3 262
3 263
3 264
3 265
3 266
3 267
3 268
3 269
3 270
3 271
3 272
3 273
3 274
3 275
3 276
3 277
3 278
3 279
3 280
3 281
3 282
3 283
3 284
3 285
3 286
3 287
3 288
3 289
3 290
3 291
3 292
3 293
3 294
3 295
3 296
3 297
3 298
3 299
3 300
3 301
3 302
3 303
3 304
3 305
3 306
3 307
3 308
3 309
3 310
3 311
3 312
3 313
3 314
3 315
3 316
3 317
3 318
3 319
3 320
3 321
3 322
3 323
3 324
3 325
3 326
3 327
3 328
3 329
3 330
3 331
3 332
3 333
3 334
3 335
3 336
3 337
3 338
3 339
3 340
3 341
3 342
3 343
3 344
3 345
3 346
3 347
3 348
3 349
3 350
3 351
3 352
3 353
3 354
3 355
3 356
3 357
3 358
3 359
3 360
3 361
3 362
3 363
3 364
3 365
3 366
3 367
3 368
3 369
3 370
3 371
3 372
3 373
3 374
3 375
3 376
3 377
3 378
3 379
3 380
3 381
3 382
3 383
3 384
3 385
3 386
3 387
3 388
3 389
3 390
3 391
3 392
3 393
3 394
3 395
3 396
3 397
3 398
3 399
3 400
3 401
3 402
3 403
3 404
3 405
3 406
3 407
3 408
3 409
3 410
3 411
3 412
3 413
3 414
3 415
3 416
3 417
3 418
3 419
3 420
3 421
3 422
3 423
3 424
3 425
3 426
3 427
3 428
3 429
3 430
3 431
3 432
3 433
3 434
3 435
3 436
3 437
3 438
3 439
3 440
3 441
3 442
3 443
3 444
3 445
3 446
3 447
3 448
3 449
3 450
3 451
3 452
3 453
3 454
3 455
3 456
3 457
3 458
3 459
3 460
3 461
3 462
3 463
3 464
3 465
3 466
3 467
3 468
3 469
3 470
3 471
3 472
3 473
3 474
3 475
3 476
3 477
3 478
3 479
3 480
3 481
3 482
3 483
3 484
3 485
3 486
3 487
3 488
3 489
3 490
3 491
3 492
3 493
3 494
3 495
3 496
3 497
3 498
3 499
3 500
3 501
3 502
3 503
3 504
3 505
3 506
3 507
3 508
3 509
3 510
3 511
3 512
3 513
3 514
3 515
3 516
3 517
3 518
3 519
3 520
3 521
3 522
3 523
3 524
3 525
3 526
3 527
3 528
3 529
3 530
3 531
3 532
3 533
3 534
3 535
3 536
3 537
3 538
3 539
3 540
3 541
3 542
3 543
3 544
3 545
3 546
3 547
3 548
3 549
3 550
3 551
3 552
3 553
3 554
3 555
3 556
3 557
3 558
3 559
3 560
3 561
3 562
3 563
3 564
3 565
3 566
3 567
3 568
3 569
3 570
3 571
3 572
3 573
3 574
3 575
3 576
3 577
3 578
3 579
3 580
3 581
3 582
3 583
3 584
3 585
3 586
3 587
3 588
3 589
3 590
3 591
3 592
3 593
3 594
3 595
3 596
3 597
3 598
3 599
3 600
3 601
3 602
3 603
3 604
3 605
3 606
3 607
3 608
3 609
3 610
3 611
3 612
3 613
3 614
3 615
3 616
3 617
3 618
3 619
3 620
3 621
3 622
3 623
3 624
3 625
3 626
3 627
3 628
3 629
3 630
3 631
3 632
3 633
3 634
3 635
3 636
3 637
3 638
3 639
3 640
3 641
3 642
3 643
3 644
3 645
3 646
3 647
3 648
3 649
3 650
3 651
3 652
3 653
3 654
3 655
3 656
3 657
3 658
3 659
3 660
3 661
3 662
3 663
3 664
3 665
3 666
3 667
3 668
3 669
3 670
3 671
3 672
3 673
3 674
3 675
3 676
3 677
3 678
3 679
3 680
3 681
3 682
3 683
3 684
3 685
3 686
3 687
3 688
3 689
3 690
3 691
3 692
3 693
3 694
3 695
3 696
3 697
3 698
3 699
3 700
3 701
3 702
3 703
3 704
3 705
3 706
3 707
3 708
3 709
3 710
3 711
3 712
3 713
3 714
3 715
3 716
3 717
3 718
3 719
3 720
3 721
3 722
3 723
3 724
3 725
3 726
3 727
3 728
3 729
3 730
3 731
3 732
3 733
3 734
3 735
3 736
3 737
3 738
3 739
3 740
3 741
3 742
3 743
3 744
3 745
3 746
3 747
3 748
3 749
3 750
3 751
3 752
3 753
3 754
3 755
3 756
3 757
3 758
3 759
3 760
3 761
3 762
3 763
3 764
3 765
3 766
3 767
3 768
3 769
3 770
3 771
3 772
3 773
3 774
3 775
3 776
3 777
3 778
3 779
3 780
3 781
3 782
3 783
3 784
3 785
3 786
3 787
3 788
3 789
3 790
3 791
3 792
3 793
3 794
3 795
3 796
3 797
3 798
3 799
3 800
3 801
3 802
3 803
3 804
3 805
3 806
3 807
3 808
3 809
3 810
3 811
3 812
3 813
3 814
3 815
3 816
3 817
3 818
3 819
3 820
3 821
3 822
3 823
3 824
3 825
3 826
3 827
3 828
3 829
3 830
3 831
3 832
3 833
3 834
3 835
3 836
3 837
3 838
3 839
3 840
3 841
3 842
3 843
3 844
3 845
3 846
3 847
3 848
3 849
3 850
3 851
3 852
3 853
3 854
3 855
3 856
3 857
3 858
3 859
3 860
3 861
3 862
3 863
3 864
3 865
3 866
3 867
3 868
3 869
3 870
3 871
3 872
3 873
3 874
3 875
3 876
3 877
3 878
3 879
3 880
3 881
3 882
3 883
3 884
3 885
3 886
3 887
3 888
3 889
3 890
3 891
3 892
3 893
3 894
3 895
3 896
3 897
3 898
3 899
3 900
3 901
3 902
3 903
3 904
3 905
3 906
3 907
3 908
3 909
3 910
3 911
3 912
3 913
3 914
3 915
3 916
3 917
3 918
3 919
3 920
3 921
3 922
3 923
3 924
3 925
3 926
3 927
3 928
3 929
3 930
3 931
3 932
3 933
3 934
3 935
3 936
3 937
3 938
3 939
3 940
3 941
3 942
3 943
3 944
3 945
3 946
3 947
3 948
3 949
3 950
3 951
3 952
3 953
3 954
3 955
3 956
3 957
3 958
3 959
3 960
3 961
3 962
3 963
3 964
3 965
3 966
3 967
3 968
3 969
3 970
3 971
3 972
3 973
3 974
3 975
3 976
3 977
3 978
3 979
3 980
3 981
3 982
3 983
3 984
3 985
3 986
3 987
3 988
3 989
3 990
3 991
3 992
3 993
3 994
3 995
3 996
3 997
3 998
3 999
4 0
4 1
4 2
4 3
4 4
4 5
4 6
4 7
4 8
4 9
4 10
4 11
4 12
4 13
4 14
4 15
4 16
4 17
4 18
4 19
4 20
4 21
4 22
4 23
4 24
4 25
4 26
4 27
4 28
4 29
4 30
4 31
4 32
4 33
4 34
4 35
4 36
4 37
4 38
4 39
4 40
4 41
4 42
4 43
4 44
4 45
4 46
4 47
4 48
4 49
4 50
4 51
4 52
4 53
4 54
4 55
4 56
4 57
4 58
4 59
4 60
4 61
4 62
4 63
4 64
4 65
4 66
4 67
4 68
4 69
4 70
4 71
4 72
4 73
4 74
4 75
4 76
4 77
4 78
4 79
4 80
4 81
4 82
4 83
4 84
4 85
4 86
4 87
4 88
4 89
4 90
4 91
4 92
4 93
4 94
4 95
4 96
4 97
4 98
4 99
4 100
4 101
4 102
4 103
4 104
4 105
4 106
4 107
4 108
4 109
4 110
4 111
4 112
4 113
4 114
4 115
4 116
4 117
4 118
4 119
4 120
4 121
4 122
4 123
4 124
4 125
4 126
4 127
4 128
4 129
4 130
4 131
4 132
4 133
4 134
4 135
4 136
4 137
4 138
4 139
4 140
4 141
4 142
4 143
4 144
4 145
4 146
4 147
4 148
4 149
4 150
4 151
4 152
4 153
4 154
4 155
4 156
4 157
4 158
4 159
4 160
4 161
4 162
4 163
4 164
4 165
4 166
4 167
4 168
4 169
4 170
4 171
4 172
4 173
4 174
4 175
4 176
4 177
4 178
4 179
4 180
4 181
4 182
4 183
4 184
4 185
4 186
4 187
4 188
4 189
4 190
4 191
4 192
4 193
4 194
4 195
4 196
4 197
4 198
4 199
4 200
4 201
4 202
4 203
4 204
4 205
4 206
4 207
4 208
4 209
4 210
4 211
4 212
4 213
4 214
4 215
4 216
4 217
4 218
4 219
4 220
4 221
4 222
4 223
4 224
4 225
4 226
4 227
4 228
4 229
4 230
4 231
4 232
4 233
4 234
4 235
4 236
4 237
4 238
4 239
4 240
4 241
4 242
4 243
4 244
4 245
4 246
4 247
4 248
4 249
4 250
4 251
4 252
4 253
4 254
4 255
4 256
4 257
4 258
4 259
4 260
4 261
4 262
4 263
4 264
4 265
4 266
4 267
4 268
4 269
4 270
4 271
4 272
4 273
4 274
4 275
4 276
4 277
4 278
4 279
4 280
4 281
4 282
4 283
4 284
4 285
4 286
4 287
4 288
4 289
4 290
4 291
4 292
4 293
4 294
4 295
4 296
4 297
4 298
4 299
4 300
4 301
4 302
4 303
4 304
4 305
4 306
4 307
4 308
4 309
4 310
4 311
4 312
4 313
4 314
4 315
4 316
4 317
4 318
4 319
4 320
4 321
4 322
4 323
4 324
4 325
4 326
4 327
4 328
4 329
4 330
4 331
4 332
4 333
4 334
4 335
4 336
4 337
4 338
4 339
4 340
4 341
4 342
4 343
4 344
4 345
4 346
4 347
4 348
4 349
4 350
4 351
4 352
4 353
4 354
4 355
4 356
4 357
4 358
4 359
4 360
4 361
4 362
4 363
4 364
4 365
4 366
4 367
4 368
4 369
4 370
4 371
4 372
4 373
4 374
4 375
4 376
4 377
4 378
4 379
4 380
4 381
4 382
4 383
4 384
4 385
4 386
4 387
4 388
4 389
4 390
4 391
4 392
4 393
4 394
4 395
4 396
4 397
4 398
4 399
4 400
4 401
4 402
4 403
4 404
4 405
4 406
4 407
4 408
4 409
4 410
4 411
4 412
4 413
4 414
4 415
4 416
4 417
4 418
4 419
4 420
4 421
4 422
4 423
4 424
4 425
4 426
4 427
4 428
4 429
4 430
4 431
4 432
4 433
4 434
4 435
4 436
4 437
4 438
4 439
4 440
4 441
4 442
4 443
4 444
4 445
4 446
4 447
4 448
4 449
4 450
4 451
4 452
4 453
4 454
4 455
4 456
4 457
4 458
4 459
4 460
4 461
4 462
4 463
4 464
4 465
4 466
4 467
4 468
4 469
4 470
4 471
4 472
4 473
4 474
4 475
4 476
4 477
4 478
4 479
4 480
4 481
4 482
4 483
4 484
4 485
4 486
4 487
4 488
4 489
4 490
4 491
4 492
4 493
4 494
4 495
4 496
4 497
4 498
4 499
4 500
4 501
4 502
4 503
4 504
4 505
4 506
4 507
4 508
4 509
4 510
4 511
4 512
4 513
4 514
4 515
4 516
4 517
4 518
4 519
4 520
4 521
4 522
4 523
4 524
4 525
4 526
4 527
4 528
4 529
4 530
4 531
4 532
4 533
4 534
4 535
4 536
4 537
4 538
4 539
4 540
4 541
4 542
4 543
4 544
4 545
4 546
4 547
4 548
4 549
4 550
4 551
4 552
4 553
4 554
4 555
4 556
4 557
4 558
4 559
4 560
4 561
4 562
4 563
4 564
4 565
4 566
4 567
4 568
4 569
4 570
4 571
4 572
4 573
4 574
4 575
4 576
4 577
4 578
4 579
4 580
4 581
4 582
4 583
4 584
4 585
4 586
4 587
4 588
4 589
4 590
4 591
4 592
4 593
4 594
4 595
4 596
4 597
4 598
4 599
4 600
4 601
4 602
4 603
4 604
4 605
4 606
4 607
4 608
4 609
4 610
4 611
4 612
4 613
4 614
4 615
4 616
4 617
4 618
4 619
4 620
4 621
4 622
4 623
4 624
4 625
4 626
4 627
4 628
4 629
4 630
4 631
4 632
4 633
4 634
4 635
4 636
4 637
4 638
4 639
4 640
4 641
4 642
4 643
4 644
4 645
4 646
4 647
4 648
4 649
4 650
4 651
4 652
4 653
4 654
4 655
4 656
4 657
4 658
4 659
4 660
4 661
4 662
4 663
4 664
4 665
4 666
4 667
4 668
4 669
4 670
4 671
4 672
4 673
4 674
4 675
4 676
4 677
4 678
4 679
4 680
4 681
4 682
4 683
4 684
4 685
4 686
4 687
4 688
4 689
4 690
4 691
4 692
4 693
4 694
4 695
4 696
4 697
4 698
4 699
4 700
4 701
4 702
4 703
4 704
4 705
4 706
4 707
4 708
4 709
4 710
4 711
4 712
4 713
4 714
4 715
4 716
4 717
4 718
4 719
4 720
4 721
4 722
4 723
4 724
4 725
4 726
4 727
4 728
4 729
4 730
4 731
4 732
4 733
4 734
4 735
4 736
4 737
4 738
4 739
4 740
4 741
4 742
4 743
4 744
4 745
4 746
4 747
4 748
4 749
4 750
4 751
4 752
4 753
4 754
4 755
4 756
4 757
4 758
4 759
4 760
4 761
4 762
4 763
4 764
4 765
4 766
4 767
4 768
4 769
4 770
4 771
4 772
4 773
4 774
4 775
4 776
4 777
4 778
4 779
4 780
4 781
4 782
4 783
4 784
4 785
4 786
4 787
4 788
4 789
4 790
4 791
4 792
4 793
4 794
4 795
4 796
4 797
4 798
4 799
4 800
4 801
4 802
4 803
4 804
4 805
4 806
4 807
4 808
4 809
4 810
4 811
4 812
4 813
4 814
4 815
4 816
4 817
4 818
4 819
4 820
4 821
4 822
4 823
4 824
4 825
4 826
4 827
4 828
4 829
4 830
4 831
4 832
4 833
4 834
4 835
4 836
4 837
4 838
4 839
4 840
4 841
4 842
4 843
4 844
4 845
4 846
4 847
4 848
4 849
4 850
4 851
4 852
4 853
4 854
4 855
4 856
4 857
4 858
4 859
4 860
4 861
4 862
4 863
4 864
4 865
4 866
4 867
4 868
4 869
4 870
4 871
4 872
4 873
4 874
4 875
4 876
4 877
4 878
4 879
4 880
4 881
4 882
4 883
4 884
4 885
4 886
4 887
4 888
4 889
4 890
4 891
4 892
4 893
4 894
4 895
4 896
4 897
4 898
4 899
4 900
4 901
4 902
4 903
4 904
4 905
4 906
4 907
4 908
4 909
4 910
4 911
4 912
4 913
4 914
4 915
4 916
4 917
4 918
4 919
4 920
4 921
4 922
4 923
4 924
4 925
4 926
4 927
4 928
4 929
4 930
4 931
4 932
4 933
4 934
4 935
4 936
4 937
4 938
4 939
4 940
4 941
4 942
4 943
4 944
4 945
4 946
4 947
4 948
4 949
4 950
4 951
4 952
4 953
4 954
4 955
4 956
4 957
4 958
4 959
4 960
4 961
4 962
4 963
4 964
4 965
4 966
4 967
4 968
4 969
4 970
4 971
4 972
4 973
4 974
4 975
4 976
4 977
4 978
4 979
4 980
4 981
4 982
4 983
4 984
4 985
4 986
4 987
4 988
4 989
4 990
4 991
4 992
4 993
4 994
4 995
4 996
4 997
4 998
4 999
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
5 10
5 11
5 12
5 13
5 14
5 15
5 16
5 17
5 18
5 19
5 20
5 21
5 22
5 23
5 24
5 25
5 26
5 27
5 28
5 29
5 30
5 31
5 32
5 33
5 34
5 35
5 36
5 37
5 38
5 39
5 40
5 41
5 42
5 43
5 44
5 45
5 46
5 47
5 48
5 49
5 50
5 51
5 52
5 53
5 54
5 55
5 56
5 57
5 58
5 59
5 60
5 61
5 62
5 63
5 64
5 65
5 66
5 67
5 68
5 69
5 70
5 71
5 72
5 73
5 74
5 75
5 76
5 77
5 78
5 79
5 80
5 81
5 82
5 83
5 84
5 85
5 86
5 87
5 88
5 89
5 90
5 91
5 92
5 93
5 94
5 95
5 96
5 97
5 98
5 99
5 100
5 101
5 102
5 103
5 104
5 105
5 106
5 107
5 108
5 109
5 110
5 111
5 112
5 113
5 114
5 115
5 116
5 117
5 118
5 119
5 120
5 121
5 122
5 123
5 124
5 125
5 126
5 127
5 128
5 129
5 130
5 131
5 132
5 133
5 134
5 135
5 136
5 137
5 138
5 139
5 140
5 141
5 142
5 143
5 144
5 145
5 146
5 147
5 148
5 149
5 150
5 151
5 152
5 153
5 154
5 155
5 156
5 157
5 158
5 159
5 160
5 161
5 162
5 163
5 164
5 165
5 166
5 167
5 168
5 169
5 170
5 171
5 172
5 173
5 174
5 175
5 176
5 177
5 178
5 179
5 180
5 181
5 182
5 183
5 184
5 185
5 186
5 187
5 188
5 189
5 190
5 191
5 192
5 193
5 194
5 195
5 196
5 197
5 198
5 199
5 200
5 201
5 202
5 203
5 204
5 205
5 206
5 207
5 208
5 209
5 210
5 211
5 212
5 213
5 214
5 215
5 216
5 217
5 218
5 219
5 220
5 221
5 222
5 223
5 224
5 225
5 226
5 227
5 228
5 229
5 230
5 231
5 232
5 233
5 234
5 235
5 236
5 237
5 238
5 239
5 240
5 241
5 242
5 243
5 244
5 245
5 246
5 247
5 248
5 249
5 250
5 251
5 252
5 253
5 254
5 255
5 256
5 257
5 258
5 259
5 260
5 261
5 262
5 263
5 264
5 265
5 266
5 267
5 268
5 269
5 270
5 271
5 272
5 273
5 274
5 275
5 276
5 277
5 278
5 279
5 280
5 281
5 282
5 283
5 284
5 285
5 286
5 287
5 288
5 289
5 290
5 291
5 292
5 293
5 294
5 295
5 296
5 297
5 298
5 299
5 300
5 301
5 302
5 303
5 304
5 305
5 306
5 307
5 308
5 309
5 310
5 311
5 312
5 313
5 314
5 315
5 316
5 317
5 318
5 319
5 320
5 321
5 322
5 323
5 324
5 325
5 326
5 327
5 328
5 329
5 330
5 331
5 332
5 333
5 334
5 335
5 336
5 337
5 338
5 339
5 340
5 341
5 342
5 343
5 344
5 345
5 346
5 347
5 348
5 349
5 350
5 351
5 352
5 353
5 354
5 355
5 356
5 357
5 358
5 359
5 360
5 361
5 362
5 363
5 364
5 365
5 366
5 367
5 368
5 369
5 370
5 371
5 372
5 373
5 374
5 375
5 376
5 377
5 378
5 379
5 380
5 381
5 382
5 383
5 384
5 385
5 386
5 387
5 388
5 389
5 390
5 391
5 392
5 393
5 394
5 395
5 396
5 397
5 398
5 399
5 400
5 401
5 402
5 403
5 404
5 405
5 406
5 407
5 408
5 409
5 410
5 411
5 412
5 413
5 414
5 415
5 416
5 417
5 418
5 419
5 420
5 421
5 422
5 423
5 424
5 425
5 426
5 427
5 428
5 429
5 430
5 431
5 432
5 433
5 434
5 435
5 436
5 437
5 438
5 439
5 440
5 441
5 442
5 443
5 444
5 445
5 446
5 447
5 448
5 449
5 450
5 451
5 452
5 453
5 454
5 455
5 456
5 457
5 458
5 459
5 460
5 461
5 462
5 463
5 464
5 465
5 466
5 467
5 468
5 469
5 470
5 471
5 472
5 473
5 474
5 475
5 476
5 477
5 478
5 479
5 480
5 481
5 482
5 483
5 484
5 485
5 486
5 487
5 488
5 489
5 490
5 491
5 492
5 493
5 494
5 495
5 496
5 497
5 498
5 499
5 500
5 501
5 502
5 503
5 504
5 505
5 506
5 507
5 508
5 509
5 510
5 511
5 512
5 513
5 514
5 515
5 516
5 517
5 518
5 519
5 520
5 521
5 522
5 523
5 524
5 525
5 526
5 527
5 528
5 529
5 530
5 531
5 532
5 533
5 534
5 535
5 536
5 537
5 538
5 539
5 540
5 541
5 542
5 543
5 544
5 545
5 546
5 547
5 548
5 549
5 550
5 551
5 552
5 553
5 554
5 555
5 556
5 557
5 558
5 559
5 560
5 561
5 562
5 563
5 564
5 565
5 566
5 567
5 568
5 569
5 570
5 571
5 572
5 573
5 574
5 575
5 576
5 577
5 578
5 579
5 580
5 581
5 582
5 583
5 584
5 585
5 586
5 587
5 588
5 589
5 590
5 591
5 592
5 593
5 594
5 595
5 596
5 597
5 598
5 599
5 600
5 601
5 602
5 603
5 604
5 605
5 606
5 607
5 608
5 609
5 610
5 611
5 612
5 613
5 614
5 615
5 616
5 617
5 618
5 619
5 620
5 621
5 622
5 623
5 624
5 625
5 626
5 627
5 628
5 629
5 630
5 631
5 632
5 633
5 634
5 635
5 636
5 637
5 638
5 639
5 640
5 641
5 642
5 643
5 644
5 645
5 646
5 647
5 648
5 649
5 650
5 651
5 652
5 653
5 654
5 655
5 656
5 657
5 658
5 659
5 660
5 661
5 662
5 663
5 664
5 665
5 666
5 667
5 668
5 669
5 670
5 671
5 672
5 673
5 674
5 675
5 676
5 677
5 678
5 679
5 680
5 681
5 682
5 683
5 684
5 685
5 686
5 687
5 688
5 689
5 690
5 691
5 692
5 693
5 694
5 695
5 696
5 697
5 698
5 699
5 700
5 701
5 702
5 703
5 704
5 705
5 706
5 707
5 708
5 709
5 710
5 711
5 712
5 713
5 714
5 715
5 716
5 717
5 718
5 719
5 720
5 721
5 722
5 723
5 724
5 725
5 726
5 727
5 728
5 729
5 730
5 731
5 732
5 733
5 734
5 735
5 736
5 737
5 738
5 739
5 740
5 741
5 742
5 743
5 744
5 745
5 746
5 747
5 748
5 749
5 750
5 751
5 752
5 753
5 754
5 755
5 756
5 757
5 758
5 759
5 760
5 761
5 762
5 763
5 764
5 765
5 766
5 767
5 768
5 769
5 770
5 771
5 772
5 773
5 774
5 775
5 776
5 777
5 778
5 779
5 780
5 781
5 782
5 783
5 784
5 785
5 786
5 787
5 788
5 789
5 790
5 791
5 792
5 793
5 794
5 795
5 796
5 797
5 798
5 799
5 800
5 801
5 802
5 803
5 804
5 805
5 806
5 807
5 808
5 809
5 810
5 811
5 812
5 813
5 814
5 815
5 816
5 817
5 818
5 819
5 820
5 821
5 822
5 823
5 824
5 825
5 826
5 827
5 828
5 829
5 830
5 831
5 832
5 833
5 834
5 835
5 836
5 837
5 838
5 839
5 840
5 841
5 842
5 843
5 844
5 845
5 846
5 847
5 848
5 849
5 850
5 851
5 852
5 853
5 854
5 855
5 856
5 857
5 858
5 859
5 860
5 861
5 862
5 863
5 864
5 865
5 866
5 867
5 868
5 869
5 870
5 871
5 872
5 873
5 874
5 875
5 876
5 877
5 878
5 879
5 880
5 881
5 882
5 883
5 884
5 885
5 886
5 887
5 888
5 889
5 890
5 891
5 892
5 893
5 894
5 895
5 896
5 897
5 898
5 899
5 900
5 901
5 902
5 903
5 904
5 905
5 906
5 907
5 908
5 909
5 910
5 911
5 912
5 913
5 914
5 915
5 916
5 917
5 918
5 919
5 920
5 921
5 922
5 923
5 924
5 925
5 926
5 927
5 928
5 929
5 930
5 931
5 932
5 933
5 934
5 935
5 936
5 937
5 938
5 939
5 940
5 941
5 942
5 943
5 944
5 945
5 946
5 947
5 948
5 949
5 950
5 951
5 952
5 953
5 954
5 955
5 956
5 957
5 958
5 959
5 960
5 961
5 962
5 963
5 964
5 965
5 966
5 967
5 968
5 969
5 970
5 971
5 972
5 973
5 974
5 975
5 976
5 977
5 978
5 979
5 980
5 981
5 982
5 983
5 984
5 985
5 986
5 987
5 988
5 989
5 990
5 991
5 992
5 993
5 994
5 995
5 996
5 997
5 998
5 999
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
6 10
6 11
6 12
6 13
6 14
6 15
6 16
6 17
6 18
6 19
6 20
6 21
6 22
6 23
6 24
6 25
6 26
6 27
6 28
6 29
6 30
6 31
6 32
6 33
6 34
6 35
6 36
6 37
6 38
6 39
6 40
6 41
6 42
6 43
6 44
6 45
6 46
6 47
6 48
6 49
6 50
6 51
6 52
6 53
6 54
6 55
6 56
6 57
6 58
6 59
6 60
6 61
6 62
6 63
6 64
6 65
6 66
6 67
6 68
6 69
6 70
6 71
6 72
6 73
6 74
6 75
6 76
6 77
6 78
6 79
6 80
6 81
6 82
6 83
6 84
6 85
6 86
6 87
6 88
6 89
6 90
6 91
6 92
6 93
6 94
6 95
6 96
6 97
6 98
6 99
6 100
6 101
6 102
6 103
6 104
6 105
6 106
6 107
6 108
6 109
6 110
6 111
6 112
6 113
6 114
6 115
6 116
6 117
6 118
6 119
6 120
6 121
6 122
6 123
6 124
6 125
6 126
6 127
6 128
6 129
6 130
6 131
6 132
6 133
6 134
6 135
6 136
6 137
6 138
6 139
6 140
6 141
6 142
6 143
6 144
6 145
6 146
6 147
6 148
6 149
6 150
6 151
6 152
6 153
6 154
6 155
6 156
6 157
6 158
6 159
6 160
6 161
6 162
6 163
6 164
6 165
6 166
6 167
6 168
6 169
6 170
6 171
6 172
6 173
6 174
6 175
6 176
6 177
6 178
6 179
6 180
6 181
6 182
6 183
6 184
6 185
6 186
6 187
6 188
6 189
6 190
6 191
6 192
6 193
6 194
6 195
6 196
6 197
6 198
6 199
6 200
6 201
6 202
6 203
6 204
6 205
6 206
6 207
6 208
6 209
6 210
6 211
6 212
6 213
6 214
6 215
6 216
6 217
6 218
6 219
6 220
6 221
6 222
6 223
6 224
6 225
6 226
6 227
6 228
6 229
6 230
6 231
6 232
6 233
6 234
6 235
6 236
6 237
6 238
6 239
6 240
6 241
6 242
6 243
6 244
6 245
6 246
6 247
6 248
6 249
6 250
6 251
6 252
6 253
6 254
6 255
6 256
6 257
6 258
6 259
6 260
6 261
6 262
6 263
6 264
6 265
6 266
6 267
6 268
6 269
6 270
6 271
6 272
6 273
6 274
6 275
6 276
6 277
6 278
6 279
6 280
6 281
6 282
6 283
6 284
6 285
6 286
6 287
6 288
6 289
6 290
6 291
6 292
6 293
6 294
6 295
6 296
6 297
6 298
6 299
6 300
6 301
6 302
6 303
6 304
6 305
6 306
6 307
6 308
6 309
6 310
6 311
6 312
6 313
6 314
6 315
6 316
6 317
6 318
6 319
6 320
6 321
6 322
6 323
6 324
6 325
6 326
6 327
6 328
6 329
6 330
6 331
6 332
6 333
6 334
6 335
6 336
6 337
6 338
6 339
6 340
6 341
6 342
6 343
6 344
6 345
6 346
6 347
6 348
6 349
6 350
6 351
6 352
6 353
6 354
6 355
6 356
6 357
6 358
6 359
6 360
6 361
6 362
6 363
6 364
6 365
6 366
6 367
6 368
6 369
6 370
6 371
6 372
6 373
6 374
6 375
6 376
6 377
6 378
6 379
6 380
6 381
6 382
6 383
6 384
6 385
6 386
6 387
6 388
6 389
6 390
6 391
6 392
6 393
6 394
6 395
6 396
6 397
6 398
6 399
6 400
6 401
6 402
6 403
6 404
6 405
6 406
6 407
6 408
6 409
6 410
6 411
6 412
6 413
6 414
6 415
6 416
6 417
6 418
6 419
6 420
6 421
6 422
6 423
6 424
6 425
6 426
6 427
6 428
6 429
6 430
6 431
6 432
6 433
6 434
6 435
6 436
6 437
6 438
6 439
6 440
6 441
6 442
6 443
6 444
6 445
6 446
6 447
6 448
6 449
6 450
6 451
6 452
6 453
6 454
6 455
6 456
6 457
6 458
6 459
6 460
6 461
6 462
6 463
6 464
6 465
6 466
6 467
6 468
6 469
6 470
6 471
6 472
6 473
6 474
6 475
6 476
6 477
6 478
6 479
6 480
6 481
6 482
6 483
6 484
6 485
6 486
6 487
6 488
6 489
6 490
6 491
6 492
6 493
6 494
6 495
6 496
6 497
6 498
6 499
6 500
6 501
6 502
6 503
6 504
6 505
6 506
6 507
6 508
6 509
6 510
6 511
6 512
6 513
6 514
6 515
6 516
6 517
6 518
6 519
6 520
6 521
6 522
6 523
6 524
6 525
6 526
6 527
6 528
6 529
6 530
6 531
6 532
6 533
6 534
6 535
6 536
6 537
6 538
6 539
6 540
6 541
6 542
6 543
6 544
6 545
6 546
6 547
6 548
6 549
6 550
6 551
6 552
6 553
6 554
6 555
6 556
6 557
6 558
6 559
6 560
6 561
6 562
6 563
6 564
6 565
6 566
6 567
6 568
6 569
6 570
6 571
6 572
6 573
6 574
6 575
6 576
6 577
6 578
6 579
6 580
6 581
6 582
6 583
6 584
6 585
6 586
6 587
6 588
6 589
6 590
6 591
6 592
6 593
6 594
6 595
6 596
6 597
6 598
6 599
6 600
6 601
6 602
6 603
6 604
6 605
6 606
6 607
6 608
6 609
6 610
6 611
6 612
6 613
6 614
6 615
6 616
6 617
6 618
6 619
6 620
6 621
6 622
6 623
6 624
6 625
6 626
6 627
6 628
6 629
6 630
6 631
6 632
6 633
6 634
6 635
6 636
6 637
6 638
6 639
6 640
6 641
6 642
6 643
6 644
6 645
6 646
6 647
6 648
6 649
6 650
6 651
6 652
6 653
6 654
6 655
6 656
6 657
6 658
6 659
6 660
6 661
6 662
6 663
6 664
6 665
6 666
6 667
6 668
6 669
6 670
6 671
6 672
6 673
6 674
6 675
6 676
6 677
6 678
6 679
6 680
6 681
6 682
6 683
6 684
6 685
6 686
6 687
6 688
6 689
6 690
6 691
6 692
6 693
6 694
6 695
6 696
6 697
6 698
6 699
6 700
6 701
6 702
6 703
6 704
6 705
6 706
6 707
6 708
6 709
6 710
6 711
6 712
6 713
6 714
6 715
6 716
6 717
6 718
6 719
6 720
6 721
6 722
6 723
6 724
6 725
6 726
6 727
6 728
6 729
6 730
6 731
6 732
6 733
6 734
6 735
6 736
6 737
6 738
6 739
6 740
6 741
6 742
6 743
6 744
6 745
6 746
6 747
6 748
6 749
6 750
6 751
6 752
6 753
6 754
6 755
6 756
6 757
6 758
6 759
6 760
6 761
6 762
6 763
6 764
6 765
6 766
6 767
6 768
6 769
6 770
6 771
6 772
6 773
6 774
6 775
6 776
6 777
6 778
6 779
6 780
6 781
6 782
6 783
6 784
6 785
6 786
6 787
6 788
6 789
6 790
6 791
6 792
6 793
6 794
6 795
6 796
6 797
6 798
6 799
6 800
6 801
6 802
6 803
6 804
6 805
6 806
6 807
6 808
6 809
6 810
6 811
6 812
6 813
6 814
6 815
6 816
6 817
6 818
6 819
6 820
6 821
6 822
6 823
6 824
6 825
6 826
6 827
6 828
6 829
6 830
6 831
6 832
6 833
6 834
6 835
6 836
6 837
6 838
6 839
6 840
6 841
6 842
6 843
6 844
6 845
6 846
6 847
6 848
6 849
6 850
6 851
6 852
6 853
6 854
6 855
6 856
6 857
6 858
6 859
6 860
6 861
6 862
6 863
6 864
6 865
6 866
6 867
6 868
6 869
6 870
6 871
6 872
6 873
6 874
6 875
6 876
6 877
6 878
6 879
6 880
6 881
6 882
6 883
6 884
6 885
6 886
6 887
6 888
6 889
6 890
6 891
6 892
6 893
6 894
6 895
6 896
6 897
6 898
6 899
6 900
6 901
6 902
6 903
6 904
6 905
6 906
6 907
6 908
6 909
6 910
6 911
6 912
6 913
6 914
6 915
6 916
6 917
6 918
6 919
6 920
6 921
6 922
6 923
6 924
6 925
6 926
6 927
6 928
6 929
6 930
6 931
6 932
6 933
6 934
6 935
6 936
6 937
6 938
6 939
6 940
6 941
6 942
6 943
6 944
6 945
6 946
6 947
6 948
6 949
6 950
6 951
6 952
6 953
6 954
6 955
6 956
6 957
6 958
6 959
6 960
6 961
6 962
6 963
6 964
6 965
6 966
6 967
6 968
6 969
6 970
6 971
6 972
6 973
6 974
6 975
6 976
6 977
6 978
6 979
6 980
6 981
6 982
6 983
6 984
6 985
6 986
6 987
6 988
6 989
6 990
6 991
6 992
6 993
6 994
6 995
6 996
6 997
6 998
6 999
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
7 10
7 11
7 12
7 13
7 14
7 15
7 16
7 17
7 18
7 19
7 20
7 21
7 22
7 23
7 24
7 25
7 26
7 27
7 28
7 29
7 30
7 31
7 32
7 33
7 34
7 35
7 36
7 37
7 38
7 39
7 40
7 41
7 42
7 43
7 44
7 45
7 46
7 47
7 48
7 49
7 50
7 51
7 52
7 53
7 54
7 55
7 56
7 57
7 58
7 59
7 60
7 61
7 62
7 63
7 64
7 65
7 66
7 67
7 68
7 69
7 70
7 71
7 72
7 73
7 74
7 75
7 76
7 77
7 78
7 79
7 80
7 81
7 82
7 83
7 84
7 85
7 86
7 87
7 88
7 89
7 90
7 91
7 92
7 93
7 94
7 95
7 96
7 97
7 98
7 99
7 100
7 101
7 102
7 103
7 104
7 105
7 106
7 107
7 108
7 109
7 110
7 111
7 112
7 113
7 114
7 115
7 116
7 117
7 118
7 119
7 120
7 121
7 122
7 123
7 124
7 125
7 126
7 127
7 128
7 129
7 130
7 131
7 132
7 133
7 134
7 135
7 136
7 137
7 138
7 139
7 140
7 141
7 142
7 143
7 144
7 145
7 146
7 147
7 148
7 149
7 150
7 151
7 152
7 153
7 154
7 155
7 156
7 157
7 158
7 159
7 160
7 161
7 162
7 163
7 164
7 165
7 166
7 167
7 168
7 169
7 170
7 171
7 172
7 173
7 174
7 175
7 176
7 177
7 178
7 179
7 180
7 181
7 182
7 183
7 184
7 185
7 186
7 187
7 188
7 189
7 190
7 191
7 192
7 193
7 194
7 195
7 196
7 197
7 198
7 199
7 200
7 201
7 202
7 203
7 204
7 205
7 206
7 207
7 208
7 209
7 210
7 211
7 212
7 213
7 214
7 215
7 216
7 217
7 218
7 219
7 220
7 221
7 222
7 223
7 224
7 225
7 226
7 227
7 228
7 229
7 230
7 231
7 232
7 233
7 234
7 235
7 236
7 237
7 238
7 239
7 240
7 241
7 242
7 243
7 244
7 245
7 246
7 247
7 248
7 249
7 250
7 251
7 252
7 253
7 254
7 255
7 256
7 257
7 258
7 259
7 260
7 261
7 262
7 263
7 264
7 265
7 266
7 267
7 268
7 269
7 270
7 271
7 272
7 273
7 274
7 275
7 276
7 277
7 278
7 279
7 280
7 281
7 282
7 283
7 284
7 285
7 286
7 287
7 288
7 289
7 290
7 291
7 292
7 293
7 294
7 295
7 296
7 297
7 298
7 299
7 300
7 301
7 302
7 303
7 304
7 305
7 306
7 307
7 308
7 309
7 310
7 311
7 312
7 313
7 314
7 315
7 316
7 317
7 318
7 319
7 320
7 321
7 322
7 323
7 324
7 325
7 326
7 327
7 328
7 329
7 330
7 331
7 332
7 333
7 334
7 335
7 336
7 337
7 338
7 339
7 340
7 341
7 342
7 343
7 344
7 345
7 346
7 347
7 348
7 349
7 350
7 351
7 352
7 353
7 354
7 355
7 356
7 357
7 358
7 359
7 360
7 361
7 362
7 363
7 364
7 365
7 366
7 367
7 368
7 369
7 370
7 371
7 372
7 373
7 374
7 375
7 376
7 377
7 378
7 379
7 380
7 381
7 382
7 383
7 384
7 385
7 386
7 387
7 388
7 389
7 390
7 391
7 392
7 393
7 394
7 395
7 396
7 397
7 398
7 399
7 400
7 401
7 402
7 403
7 404
7 405
7 406
7 407
7 408
7 409
7 410
7 411
7 412
7 413
7 414
7 415
7 416
7 417
7 418
7 419
7 420
7 421
7 422
7 423
7 424
7 425
7 426
7 427
7 428
7 429
7 430
7 431
7 432
7 433
7 434
7 435
7 436
7 437
7 438
7 439
7 440
7 441
7 442
7 443
7 444
7 445
7 446
7 447
7 448
7 449
7 450
7 451
7 452
7 453
7 454
7 455
7 456
7 457
7 458
7 459
7 460
7 461
7 462
7 463
7 464
7 465
7 466
7 467
7 468
7 469
7 470
7 471
7 472
7 473
7 474
7 475
7 476
7 477
7 478
7 479
7 480
7 481
7 482
7 483
7 484
7 485
7 486
7 487
7 488
7 489
7 490
7 491
7 492
7 493
7 494
7 495
7 496
7 497
7 498
7 499
7 500
7 501
7 502
7 503
7 504
7 505
7 506
7 507
7 508
7 509
7 510
7 511
7 512
7 513
7 514
7 515
7 516
7 517
7 518
7 519
7 520
7 521
7 522
7 523
7 524
7 525
7 526
7 527
7 528
7 529
7 530
7 531
7 532
7 533
7 534
7 535
7 536
7 537
7 538
7 539
7 540
7 541
7 542
7 543
7 544
7 545
7 546
7 547
7 548
7 549
7 550
7 551
7 552
7 553
7 554
7 555
7 556
7 557
7 558
7 559
7 560
7 561
7 562
7 563
7 564
7 565
7 566
7 567
7 568
7 569
7 570
7 571
7 572
7 573
7 574
7 575
7 576
7 577
7 578
7 579
7 580
7 581
7 582
7 583
7 584
7 585
7 586
7 587
7 588
7 589
7 590
7 591
7 592
7 593
7 594
7 595
7 596
7 597
7 598
7 599
7 600
7 601
7 602
7 603
7 604
7 605
7 606
7 607
7 608
7 609
7 610
7 611
7 612
7 613
7 614
7 615
7 616
7 617
7 618
7 619
7 620
7 621
7 622
7 623
7 624
7 625
7 626
7 627
7 628
7 629
7 630
7 631
7 632
7 633
7 634
7 635
7 636
7 637
7 638
7 639
7 640
7 641
7 642
7 643
7 644
7 645
7 646
7 647
7 648
7 649
7 650
7 651
7 652
7 653
7 654
7 655
7 656
7 657
7 658
7 659
7 660
7 661
7 662
7 663
7 664
7 665
7 666
7 667
7 668
7 669
7 670
7 671
7 672
7 673
7 674
7 675
7 676
7 677
7 678
7 679
7 680
7 681
7 682
7 683
7 684
7 685
7 686
7 687
7 688
7 689
7 690
7 691
7 692
7 693
7 694
7 695
7 696
7 697
7 698
7 699
7 700
7 701
7 702
7 703
7 704
7 705
7 706
7 707
7 708
7 709
7 710
7 711
7 712
7 713
7 714
7 715
7 716
7 717
7 718
7 719
7 720
7 721
7 722
7 723
7 724
7 725
7 726
7 727
7 728
7 729
7 730
7 731
7 732
7 733
7 734
7 735
7 736
7 737
7 738
7 739
7 740
7 741
7 742
7 743
7 744
7 745
7 746
7 747
7 748
7 749
7 750
7 751
7 752
7 753
7 754
7 755
7 756
7 757
7 758
7 759
7 760
7 761
7 762
7 763
7 764
7 765
7 766
7 767
7 768
7 769
7 770
7 771
7 772
7 773
7 774
7 775
7 776
7 777
7 778
7 779
7 780
7 781
7 782
7 783
7 784
7 785
7 786
7 787
7 788
7 789
7 790
7 791
7 792
7 793
7 794
7 795
7 796
7 797
7 798
7 799
7 800
7 801
7 802
7 803
7 804
7 805
7 806
7 807
7 808
7 809
7 810
7 811
7 812
7 813
7 814
7 815
7 816
7 817
7 818
7 819
7 820
7 821
7 822
7 823
7 824
7 825
7 826
7 827
7 828
7 829
7 830
7 831
7 832
7 833
7 834
7 835
7 836
7 837
7 838
7 839
7 840
7 841
7 842
7 843
7 844
7 845
7 846
7 847
7 848
7 849
7 850
7 851
7 852
7 853
7 854
7 855
7 856
7 857
7 858
7 859
7 860
7 861
7 862
7 863
7 864
7 865
7 866
7 867
7 868
7 869
7 870
7 871
7 872
7 873
7 874
7 875
7 876
7 877
7 878
7 879
7 880
7 881
7 882
7 883
7 884
7 885
7 886
7 887
7 888
7 889
7 890
7 891
7 892
7 893
7 894
7 895
7 896
7 897
7 898
7 899
7 900
7 901
7 902
7 903
7 904
7 905
7 906
7 907
7 908
7 909
7 910
7 911
7 912
7 913
7 914
7 915
7 916
7 917
7 918
7 919
7 920
7 921
7 922
7 923
7 924
7 925
7 926
7 927
7 928
7 929
7 930
7 931
7 932
7 933
7 934
7 935
7 936
7 937
7 938
7 939
7 940
7 941
7 942
7 943
7 944
7 945
7 946
7 947
7 948
7 949
7 950
7 951
7 952
7 953
7 954
7 955
7 956
7 957
7 958
7 959
7 960
7 961
7 962
7 963
7 964
7 965
7 966
7 967
7 968
7 969
7 970
7 971
7 972
7 973
7 974
7 975
7 976
7 977
7 978
7 979
7 980
7 981
7 982
7 983
7 984
7 985
7 986
7 987
7 988
7 989
7 990
7 991
7 992
7 993
7 994
7 995
7 996
7 997
7 998
7 999
8 0
8 1
8 2
8 3
8 4
8 5
8 6
8 7
8 8
8 9
8 10
8 11
8 12
8 13
8 14
8 15
8 16
8 17
8 18
8 19
8 20
8 21
8 22
8 23
8 24
8 25
8 26
8 27
8 28
8 29
8 30
8 31
8 32
8 33
8 34
8 35
8 36
8 37
8 38
8 39
8 40
8 41
8 42
8 43
8 44
8 45
8 46
8 47
8 48
8 49
8 50
8 51
8 52
8 53
8 54
8 55
8 56
8 57
8 58
8 59
8 60
8 61
8 62
8 63
8 64
8 65
8 66
8 67
8 68
8 69
8 70
8 71
8 72
8 73
8 74
8 75
8 76
8 77
8 78
8 79
8 80
8 81
8 82
8 83
8 84
8 85
8 86
8 87
8 88
8 89
8 90
8 91
8 92
8 93
8 94
8 95
8 96
8 97
8 98
8 99
8 100
8 101
8 102
8 103
8 104
8 105
8 106
8 107
8 108
8 109
8 110
8 111
8 112
8 113
8 114
8 115
8 116
8 117
8 118
8 119
8 120
8 121
8 122
8 123
8 124
8 125
8 126
8 127
8 128
8 129
8 130
8 131
8 132
8 133
8 134
8 135
8 136
8 137
8 138
8 139
8 140
8 141
8 142
8 143
8 144
8 145
8 146
8 147
8 148
8 149
8 150
8 151
8 152
8 153
8 154
8 155
8 156
8 157
8 158
8 159
8 160
8 161
8 162
8 163
8 164
8 165
8 166
8 167
8 168
8 169
8 170
8 171
8 172
8 173
8 174
8 175
8 176
8 177
8 178
8 179
8 180
8 181
8 182
8 183
8 184
8 185
8 186
8 187
8 188
8 189
8 190
8 191
8 192
8 193
8 194
8 195
8 196
8 197
8 198
8 199
8 200
8 201
8 202
8 203
8 204
8 205
8 206
8 207
8 208
8 209
8 210
8 211
8 212
8 213
8 214
8 215
8 216
8 217
8 218
8 219
8 220
8 221
8 222
8 223
8 224
8 225
8 226
8 227
8 228
8 229
8 230
8 231
8 232
8 233
8 234
8 235
8 236
8 237
8 238
8 239
8 240
8 241
8 242
8 243
8 244
8 245
8 246
8 247
8 248
8 249
8 250
8 251
8 252
8 253
8 254
8 255
8 256
8 257
8 258
8 259
8 260
8 261
8 262
8 263
8 264
8 265
8 266
8 267
8 268
8 269
8 270
8 271
8 272
8 273
8 274
8 275
8 276
8 277
8 278
8 279
8 280
8 281
8 282
8 283
8 284
8 285
8 286
8 287
8 288
8 289
8 290
8 291
8 292
8 293
8 294
8 295
8 296
8 297
8 298
8 299
8 300
8 301
8 302
8 303
8 304
8 305
8 306
8 307
8 308
8 309
8 310
8 311
8 312
8 313
8 314
8 315
8 316
8 317
8 318
8 319
8 320
8 321
8 322
8 323
8 324
8 325
8 326
8 327
8 328
8 329
8 330
8 331
8 332
8 333
8 334
8 335
8 336
8 337
8 338
8 339
8 340
8 341
8 342
8 343
8 344
8 345
8 346
8 347
8 348
8 349
8 350
8 351
8 352
8 353
8 354
8 355
8 356
8 357
8 358
8 359
8 360
8 361
8 362
8 363
8 364
8 365
8 366
8 367
8 368
8 369
8 370
8 371
8 372
8 373
8 374
8 375
8 376
8 377
8 378
8 379
8 380
8 381
8 382
8 383
8 384
8 385
8 386
8 387
8 388
8 389
8 390
8 391
8 392
8 393
8 394
8 395
8 396
8 397
8 398
8 399
8 400
8 401
8 402
8 403
8 404
8 405
8 406
8 407
8 408
8 409
8 410
8 411
8 412
8 413
8 414
8 415
8 416
8 417
8 418
8 419
8 420
8 421
8 422
8 423
8 424
8 425
8 426
8 427
8 428
8 429
8 430
8 431
8 432
8 433
8 434
8 435
8 436
8 437
8 438
8 439
8 440
8 441
8 442
8 443
8 444
8 445
8 446
8 447
8 448
8 449
8 450
8 451
8 452
8 453
8 454
8 455
8 456
8 457
8 458
8 459
8 460
8 461
8 462
8 463
8 464
8 465
8 466
8 467
8 468
8 469
8 470
8 471
8 472
8 473
8 474
8 475
8 476
8 477
8 478
8 479
8 480
8 481
8 482
8 483
8 484
8 485
8 486
8 487
8 488
8 489
8 490
8 491
8 492
8 493
8 494
8 495
8 496
8 497
8 498
8 499
8 500
8 501
8 502
8 503
8 504
8 505
8 506
8 507
8 508
8 509
8 510
8 511
8 512
8 513
8 514
8 515
8 516
8 517
8 518
8 519
8 520
8 521
8 522
8 523
8 524
8 525
8 526
8 527
8 528
8 529
8 530
8 531
8 532
8 533
8 534
8 535
8 536
8 537
8 538
8 539
8 540
8 541
8 542
8 543
8 544
8 545
8 546
8 547
8 548
8 549
8 550
8 551
8 552
8 553
8 554
8 555
8 556
8 557
8 558
8 559
8 560
8 561
8 562
8 563
8 564
8 565
8 566
8 567
8 568
8 569
8 570
8 571
8 572
8 573
8 574
8 575
8 576
8 577
8 578
8 579
8 580
8 581
8 582
8 583
8 584
8 585
8 586
8 587
8 588
8 589
8 590
8 591
8 592
8 593
8 594
8 595
8 596
8 597
8 598
8 599
8 600
8 601
8 602
8 603
8 604
8 605
8 606
8 607
8 608
8 609
8 610
8 611
8 612
8 613
8 614
8 615
8 616
8 617
8 618
8 619
8 620
8 621
8 622
8 623
8 624
8 625
8 626
8 627
8 628
8 629
8 630
8 631
8 632
8 633
8 634
8 635
8 636
8 637
8 638
8 639
8 640
8 641
8 642
8 643
8 644
8 645
8 646
8 647
8 648
8 649
8 650
8 651
8 652
8 653
8 654
8 655
8 656
8 657
8 658
8 659
8 660
8 661
8 662
8 663
8 664
8 665
8 666
8 667
8 668
8 669
8 670
8 671
8 672
8 673
8 674
8 675
8 676
8 677
8 678
8 679
8 680
8 681
8 682
8 683
8 684
8 685
8 686
8 687
8 688
8 689
8 690
8 691
8 692
8 693
8 694
8 695
8 696
8 697
8 698
8 699
8 700
8 701
8 702
8 703
8 704
8 705
8 706
8 707
8 708
8 709
8 710
8 711
8 712
8 713
8 714
8 715
8 716
8 717
8 718
8 719
8 720
8 721
8 722
8 723
8 724
8 725
8 726
8 727
8 728
8 729
8 730
8 731
8 732
8 733
8 734
8 735
8 736
8 737
8 738
8 739
8 740
8 741
8 742
8 743
8 744
8 745
8 746
8 747
8 748
8 749
8 750
8 751
8 752
8 753
8 754
8 755
8 756
8 757
8 758
8 759
8 760
8 761
8 762
8 763
8 764
8 765
8 766
8 767
8 768
8 769
8 770
8 771
8 772
8 773
8 774
8 775
8 776
8 777
8 778
8 779
8 780
8 781
8 782
8 783
8 784
8 785
8 786
8 787
8 788
8 789
8 790
8 791
8 792
8 793
8 794
8 795
8 796
8 797
8 798
8 799
8 800
8 801
8 802
8 803
8 804
8 805
8 806
8 807
8 808
8 809
8 810
8 811
8 812
8 813
8 814
8 815
8 816
8 817
8 818
8 819
8 820
8 821
8 822
8 823
8 824
8 825
8 826
8 827
8 828
8 829
8 830
8 831
8 832
8 833
8 834
8 835
8 836
8 837
8 838
8 839
8 840
8 841
8 842
8 843
8 844
8 845
8 846
8 847
8 848
8 849
8 850
8 851
8 852
8 853
8 854
8 855
8 856
8 857
8 858
8 859
8 860
8 861
8 862
8 863
8 864
8 865
8 866
8 867
8 868
8 869
8 870
8 871
8 872
8 873
8 874
8 875
8 876
8 877
8 878
8 879
8 880
8 881
8 882
8 883
8 884
8 885
8 886
8 887
8 888
8 889
8 890
8 891
8 892
8 893
8 894
8 895
8 896
8 897
8 898
8 899
8 900
8 901
8 902
8 903
8 904
8 905
8 906
8 907
8 908
8 909
8 910
8 911
8 912
8 913
8 914
8 915
8 916
8 917
8 918
8 919
8 920
8 921
8 922
8 923
8 924
8 925
8 926
8 927
8 928
8 929
8 930
8 931
8 932
8 933
8 934
8 935
8 936
8 937
8 938
8 939
8 940
8 941
8 942
8 943
8 944
8 945
8 946
8 947
8 948
8 949
8 950
8 951
8 952
8 953
8 954
8 955
8 956
8 957
8 958
8 959
8 960
8 961
8 962
8 963
8 964
8 965
8 966
8 967
8 968
8 969
8 970
8 971
8 972
8 973
8 974
8 975
8 976
8 977
8 978
8 979
8 980
8 981
8 982
8 983
8 984
8 985
8 986
8 987
8 988
8 989
8 990
8 991
8 992
8 993
8 994
8 995
8 996
8 997
8 998
8 999
9 0
9 1
9 2
9 3
9 4
9 5
9 6
9 7
9 8
9 9
9 10
9 11
9 12
9 13
9 14
9 15
9 16
9 17
9 18
9 19
9 20
9 21
9 22
9 23
9 24
9 25
9 26
9 27
9 28
9 29
9 30
9 31
9 32
9 33
9 34
9 35
9 36
9 37
9 38
9 39
9 40
9 41
9 42
9 43
9 44
9 45
9 46
9 47
9 48
9 49
9 50
9 51
9 52
9 53
9 54
9 55
9 56
9 57
9 58
9 59
9 60
9 61
9 62
9 63
9 64
9 65
9 66
9 67
9 68
9 69
9 70
9 71
9 72
9 73
9 74
9 75
9 76
9 77
9 78
9 79
9 80
9 81
9 82
9 83
9 84
9 85
9 86
9 87
9 88
9 89
9 90
9 91
9 92
9 93
9 94
9 95
9 96
9 97
9 98
9 99
9 100
9 101
9 102
9 103
9 104
9 105
9 106
9 107
9 108
9 109
9 110
9 111
9 112
9 113
9 114
9 115
9 116
9 117
9 118
9 119
9 120
9 121
9 122
9 123
9 124
9 125
9 126
9 127
9 128
9 129
9 130
9 131
9 132
9 133
9 134
9 135
9 136
9 137
9 138
9 139
9 140
9 141
9 142
9 143
9 144
9 145
9 146
9 147
9 148
9 149
9 150
9 151
9 152
9 153
9 154
9 155
9 156
9 157
9 158
9 159
9 160
9 161
9 162
9 163
9 164
9 165
9 166
9 167
9 168
9 169
9 170
9 171
9 172
9 173
9 174
9 175
9 176
9 177
9 178
9 179
9 180
9 181
9 182
9 183
9 184
9 185
9 186
9 187
9 188
9 189
9 190
9 191
9 192
9 193
9 194
9 195
9 196
9 197
9 198
9 199
9 200
9 201
9 202
9 203
9 204
9 205
9 206
9 207
9 208
9 209
9 210
9 211
9 212
9 213
9 214
9 215
9 216
9 217
9 218
9 219
9 220
9 221
9 222
9 223
9 224
9 225
9 226
9 227
9 228
9 229
9 230
9 231
9 232
9 233
9 234
9 235
9 236
9 237
9 238
9 239
9 240
9 241
9 242
9 243
9 244
9 245
9 246
9 247
9 248
9 249
9 250
9 251
9 252
9 253
9 254
9 255
9 256
9 257
9 258
9 259
9 260
9 261
9 262
9 263
9 264
9 265
9 266
9 267
9 268
9 269
9 270
9 271
9 272
9 273
9 274
9 275
9 276
9 277
9 278
9 279
9 280
9 281
9 282
9 283
9 284
9 285
9 286
9 287
9 288
9 289
9 290
9 291
9 292
9 293
9 294
9 295
9 296
9 297
9 298
9 299
9 300
9 301
9 302
9 303
9 304
9 305
9 306
9 307
9 308
9 309
9 310
9 311
9 312
9 313
9 314
9 315
9 316
9 317
9 318
9 319
9 320
9 321
9 322
9 323
9 324
9 325
9 326
9 327
9 328
9 329
9 330
9 331
9 332
9 333
9 334
9 335
9 336
9 337
9 338
9 339
9 340
9 341
9 342
9 343
9 344
9 345
9 346
9 347
9 348
9 349
9 350
9 351
9 352
9 353
9 354
9 355
9 356
9 357
9 358
9 359
9 360
9 361
9 362
9 363
9 364
9 365
9 366
9 367
9 368
9 369
9 370
9 371
9 372
9 373
9 374
9 375
9 376
9 377
9 378
9 379
9 380
9 381
9 382
9 383
9 384
9 385
9 386
9 387
9 388
9 389
9 390
9 391
9 392
9 393
9 394
9 395
9 396
9 397
9 398
9 399
9 400
9 401
9 402
9 403
9 404
9 405
9 406
9 407
9 408
9 409
9 410
9 411
9 412
9 413
9 414
9 415
9 416
9 417
9 418
9 419
9 420
9 421
9 422
9 423
9 424
9 425
9 426
9 427
9 428
9 429
9 430
9 431
9 432
9 433
9 434
9 435
9 436
9 437
9 438
9 439
9 440
9 441
9 442
9 443
9 444
9 445
9 446
9 447
9 448
9 449
9 450
9 451
9 452
9 453
9 454
9 455
9 456
9 457
9 458
9 459
9 460
9 461
9 462
9 463
9 464
9 465
9 466
9 467
9 468
9 469
9 470
9 471
9 472
9 473
9 474
9 475
9 476
9 477
9 478
9 479
9 480
9 481
9 482
9 483
9 484
9 485
9 486
9 487
9 488
9 489
9 490
9 491
9 492
9 493
9 494
9 495
9 496
9 497
9 498
9 499
9 500
9 501
9 502
9 503
9 504
9 505
9 506
9 507
9 508
9 509
9 510
9 511
9 512
9 513
9 514
9 515
9 516
9 517
9 518
9 519
9 520
9 521
9 522
9 523
9 524
9 525
9 526
9 527
9 528
9 529
9 530
9 531
9 532
9 533
9 534
9 535
9 536
9 537
9 538
9 539
9 540
9 541
9 542
9 543
9 544
9 545
9 546
9 547
9 548
9 549
9 550
9 551
9 552
9 553
9 554
9 555
9 556
9 557
9 558
9 559
9 560
9 561
9 562
9 563
9 564
9 565
9 566
9 567
9 568
9 569
9 570
9 571
9 572
9 573
9 574
9 575
9 576
9 577
9 578
9 579
9 580
9 581
9 582
9 583
9 584
9 585
9 586
9 587
9 588
9 589
9 590
9 591
9 592
9 593
9 594
9 595
9 596
9 597
9 598
9 599
9 600
9 601
9 602
9 603
9 604
9 605
9 606
9 607
9 608
9 609
9 610
9 611
9 612
9 613
9 614
9 615
9 616
9 617
9 618
9 619
9 620
9 621
9 622
9 623
9 624
9 625
9 626
9 627
9 628
9 629
9 630
9 631
9 632
9 633
9 634
9 635
9 636
9 637
9 638
9 639
9 640
9 641
9 642
9 643
9 644
9 645
9 646
9 647
9 648
9 649
9 650
9 651
9 652
9 653
9 654
9 655
9 656
9 657
9 658
9 659
9 660
9 661
9 662
9 663
9 664
9 665
9 666
9 667
9 668
9 669
9 670
9 671
9 672
9 673
9 674
9 675
9 676
9 677
9 678
9 679
9 680
9 681
9 682
9 683
9 684
9 685
9 686
9 687
9 688
9 689
9 690
9 691
9 692
9 693
9 694
9 695
9 696
9 697
9 698
9 699
9 700
9 701
9 702
9 703
9 704
9 705
9 706
9 707
9 708
9 709
9 710
9 711
9 712
9 713
9 714
9 715
9 716
9 717
9 718
9 719
9 720
9 721
9 722
9 723
9 724
9 725
9 726
9 727
9 728
9 729
9 730
9 731
9 732
9 733
9 734
9 735
9 736
9 737
9 738
9 739
9 740
9 741
9 742
9 743
9 744
9 745
9 746
9 747
9 748
9 749
9 750
9 751
9 752
9 753
9 754
9 755
9 756
9 757
9 758
9 759
9 760
9 761
9 762
9 763
9 764
9 765
9 766
9 767
9 768
9 769
9 770
9 771
9 772
9 773
9 774
9 775
9 776
9 777
9 778
9 779
9 780
9 781
9 782
9 783
9 784
9 785
9 786
9 787
9 788
9 789
9 790
9 791
9 792
9 793
9 794
9 795
9 796
9 797
9 798
9 799
9 800
9 801
9 802
9 803
9 804
9 805
9 806
9 807
9 808
9 809
9 810
9 811
9 812
9 813
9 814
9 815
9 816
9 817
9 818
9 819
9 820
9 821
9 822
9 823
9 824
9 825
9 826
9 827
9 828
9 829
9 830
9 831
9 832
9 833
9 834
9 835
9 836
9 837
9 838
9 839
9 840
9 841
9 842
9 843
9 844
9 845
9 846
9 847
9 848
9 849
9 850
9 851
9 852
9 853
9 854
9 855
9 856
9 857
9 858
9 859
9 860
9 861
9 862
9 863
9 864
9 865
9 866
9 867
9 868
9 869
9 870
9 871
9 872
9 873
9 874
9 875
9 876
9 877
9 878
9 879
9 880
9 881
9 882
9 883
9 884
9 885
9 886
9 887
9 888
9 889
9 890
9 891
9 892
9 893
9 894
9 895
9 896
9 897
9 898
9 899
9 900
9 901
9 902
9 903
9 904
9 905
9 906
9 907
9 908
9 909
9 910
9 911
9 912
9 913
9 914
9 915
9 916
9 917
9 918
9 919
9 920
9 921
9 922
9 923
9 924
9 925
9 926
9 927
9 928
9 929
9 930
9 931
9 932
9 933
9 934
9 935
9 936
9 937
9 938
9 939
9 940
9 941
9 942
9 943
9 944
9 945
9 946
9 947
9 948
9 949
9 950
9 951
9 952
9 953
9 954
9 955
9 956
9 957
9 958
9 959
9 960
9 961
9 962
9 963
9 964
9 965
9 966
9 967
9 968
9 969
9 970
9 971
9 972
9 973
9 974
9 975
9 976
9 977
9 978
9 979
9 980
9 981
9 982
9 983
9 984
9 985
9 986
9 987
9 988
9 989
9 990
9 991
9 992
9 993
9 994
9 995
9 996
9 997
9 998
9 999
10 0
10 1
10 2
10 3
10 4
10 5
10 6
10 7
10 8
10 9
10 10
10 11
10 12
10 13
10 14
10 15
10 16
10 17
10 18
10 19
10 20
10 21
10 22
10 23
10 24
10 25
10 26
10 27
10 28
10 29
10 30
10 31
10 32
10 33
10 34
10 35
10 36
10 37
10 38
10 39
10 40
10 41
10 42
10 43
10 44
10 45
10 46
10 47
10 48
10 49
10 50
10 51
10 52
10 53
10 54
10 55
10 56
10 57
10 58
10 59
10 60
10 61
10 62
10 63
10 64
10 65
10 66
10 67
10 68
10 69
10 70
10 71
10 72
10 73
10 74
10 75
10 76
10 77
10 78
10 79
10 80
10 81
10 82
10 83
10 84
10 85
10 86
10 87
10 88
10 89
10 90
10 91
10 92
10 93
10 94
10 95
10 96
10 97
10 98
10 99
10 100
10 101
10 102
10 103
10 104
10 105
10 106
10 107
10 108
10 109
10 110
10 111
10 112
10 113
10 114
10 115
10 116
10 117
10 118
10 119
10 120
10 121
10 122
10 123
10 124
10 125
10 126
10 127
10 128
10 129
10 130
10 131
10 132
10 133
10 134
10 135
10 136
10 137
10 138
10 139
10 140
10 141
10 142
10 143
10 144
10 145
10 146
10 147
10 148
10 149
10 150
10 151
10 152
10 153
10 154
10 155
10 156
10 157
10 158
10 159
10 160
10 161
10 162
10 163
10 164
10 165
10 166
10 167
10 168
10 169
10 170
10 171
10 172
10 173
10 174
10 175
10 176
10 177
10 178
10 179
10 180
10 181
10 182
10 183
10 184
10 185
10 186
10 187
10 188
10 189
10 190
10 191
10 192
10 193
10 194
10 195
10 196
10 197
10 198
10 199
10 200
10 201
10 202
10 203
10 204
10 205
10 206
10 207
10 208
10 209
10 210
10 211
10 212
10 213
10 214
10 215
10 216
10 217
10 218
10 219
10 220
10 221
10 222
10 223
10 224
10 225
10 226
10 227
10 228
10 229
10 230
10 231
10 232
10 233
10 234
10 235
10 236
10 237
10 238
10 239
10 240
10 241
10 242
10 243
10 244
10 245
10 246
10 247
10 248
10 249
10 250
10 251
10 252
10 253
10 254
10 255
10 256
10 257
10 258
10 259
10 260
10 261
10 262
10 263
10 264
10 265
10 266
10 267
10 268
10 269
10 270
10 271
10 272
10 273
10 274
10 275
10 276
10 277
10 278
10 279
10 280
10 281
10 282
10 283
10 284
10 285
10 286
10 287
10 288
10 289
10 290
10 291
10 292
10 293
10 294
10 295
10 296
10 297
10 298
10 299
10 300
10 301
10 302
10 303
10 304
10 305
10 306
10 307
10 308
10 309
10 310
10 311
10 312
10 313
10 314
10 315
10 316
10 317
10 318
10 319
10 320
10 321
10 322
10 323
10 324
10 325
10 326
10 327
10 328
10 329
10 330
10 331
10 332
10 333
10 334
10 335
10 336
10 337
10 338
10 339
10 340
10 341
10 342
10 343
10 344
10 345
10 346
10 347
10 348
10 349
10 350
10 351
10 352
10 353
10 354
10 355
10 356
10 357
10 358
10 359
10 360
10 361
10 362
10 363
10 364
10 365
10 366
10 367
10 368
10 369
10 370
10 371
10 372
10 373
10 374
10 375
10 376
10 377
10 378
10 379
10 380
10 381
10 382
10 383
10 384
10 385
10 386
10 387
10 388
10 389
10 390
10 391
10 392
10 393
10 394
10 395
10 396
10 397
10 398
10 399
10 400
10 401
10 402
10 403
10 404
10 405
10 406
10 407
10 408
10 409
10 410
10 411
10 412
10 413
10 414
10 415
10 416
10 417
10 418
10 419
10 420
10 421
10 422
10 423
10 424
10 425
10 426
10 427
10 428
10 429
10 430
10 431
10 432
10 433
10 434
10 435
10 436
10 437
10 438
10 439
10 440
10 441
10 442
10 443
10 444
10 445
10 446
10 447
10 448
10 449
10 450
10 451
10 452
10 453
10 454
10 455
10 456
10 457
10 458
10 459
10 460
10 461
10 462
10 463
10 464
10 465
10 466
10 467
10 468
10 469
10 470
10 471
10 472
10 473
10 474
10 475
10 476
10 477
10 478
10 479
10 480
10 481
10 482
10 483
10 484
10 485
10 486
10 487
10 488
10 489
10 490
10 491
10 492
10 493
10 494
10 495
10 496
10 497
10 498
10 499
10 500
10 501
10 502
10 503
10 504
10 505
10 506
10 507
10 508
10 509
10 510
10 511
10 512
10 513
10 514
10 515
10 516
10 517
10 518
10 519
10 520
10 521
10 522
10 523
10 524
10 525
10 526
10 527
10 528
10 529
10 530
10 531
10 532
10 533
10 534
10 535
10 536
10 537
10 538
10 539
10 540
10 541
10 542
10 543
10 544
10 545
10 546
10 547
10 548
10 549
10 550
10 551
10 552
10 553
10 554
10 555
10 556
10 557
10 558
10 559
10 560
10 561
10 562
10 563
10 564
10 565
10 566
10 567
10 568
10 569
10 570
10 571
10 572
10 573
10 574
10 575
10 576
10 577
10 578
10 579
10 580
10 581
10 582
10 583
10 584
10 585
10 586
10 587
10 588
10 589
10 590
10 591
10 592
10 593
10 594
10 595
10 596
10 597
10 598
10 599
10 600
10 601
10 602
10 603
10 604
10 605
10 606
10 607
10 608
10 609
10 610
10 611
10 612
10 613
10 614
10 615
10 616
10 617
10 618
10 619
10 620
10 621
10 622
10 623
10 624
10 625
10 626
10 627
10 628
10 629
10 630
10 631
10 632
10 633
10 634
10 635
10 636
10 637
10 638
10 639
10 640
10 641
10 642
10 643
10 644
10 645
10 646
10 647
10 648
10 649
10 650
10 651
10 652
10 653
10 654
10 655
10 656
10 657
10 658
10 659
10 660
10 661
10 662
10 663
10 664
10 665
10 666
10 667
10 668
10 669
10 670
10 671
10 672
10 673
10 674
10 675
10 676
10 677
10 678
10 679
10 680
10 681
10 682
10 683
10 684
10 685
10 686
10 687
10 688
10 689
10 690
10 691
10 692
10 693
10 694
10 695
10 696
10 697
10 698
10 699
10 700
10 701
10 702
10 703
10 704
10 705
10 706
10 707
10 708
10 709
10 710
10 711
10 712
10 713
10 714
10 715
10 716
10 717
10 718
10 719
10 720
10 721
10 722
10 723
10 724
10 725
10 726
10 727
10 728
10 729
10 730
10 731
10 732
10 733
10 734
10 735
10 736
10 737
10 738
10 739
10 740
10 741
10 742
10 743
10 744
10 745
10 746
10 747
10 748
10 749
10 750
10 751
10 752
10 753
10 754
10 755
10 756
10 757
10 758
10 759
10 760
10 761
10 762
10 763
10 764
10 765
10 766
10 767
10 768
10 769
10 770
10 771
10 772
10 773
10 774
10 775
10 776
10 777
10 778
10 779
10 780
10 781
10 782
10 783
10 784
10 785
10 786
10 787
10 788
10 789
10 790
10 791
10 792
10 793
10 794
10 795
10 796
10 797
10 798
10 799
10 800
10 801
10 802
10 803
10 804
10 805
10 806
10 807
10 808
10 809
10 810
10 811
10 812
10 813
10 814
10 815
10 816
10 817
10 818
10 819
10 820
10 821
10 822
10 823
10 824
10 825
10 826
10 827
10 828
10 829
10 830
10 831
10 832
10 833
10 834
10 835
10 836
10 837
10 838
10 839
10 840
10 841
10 842
10 843
10 844
10 845
10 846
10 847
10 848
10 849
10 850
10 851
10 852
10 853
10 854
10 855
10 856
10 857
10 858
10 859
10 860
10 861
10 862
10 863
10 864
10 865
10 866
10 867
10 868
10 869
10 870
10 871
10 872
10 873
10 874
10 875
10 876
10 877
10 878
10 879
10 880
10 881
10 882
10 883
10 884
10 885
10 886
10 887
10 888
10 889
10 890
10 891
10 892
10 893
10 894
10 895
10 896
10 897
10 898
10 899
10 900
10 901
10 902
10 903
10 904
10 905
10 906
10 907
10 908
10 909
10 910
10 911
10 912
10 913
10 914
10 915
10 916
10 917
10 918
10 919
10 920
10 921
10 922
10 923
10 924
10 925
10 926
10 927
10 928
10 929
10 930
10 931
10 932
10 933
10 934
10 935
10 936
10 937
10 938
10 939
10 940
10 941
10 942
10 943
10 944
10 945
10 946
10 947
10 948
10 949
10 950
10 951
10 952
10 953
10 954
10 955
10 956
10 957
10 958
10 959
10 960
10 961
10 962
10 963
10 964
10 965
10 966
10 967
10 968
10 969
10 970
10 971
10 972
10 973
10 974
10 975
10 976
10 977
10 978
10 979
10 980
10 981
10 982
10 983
10 984
10 985
10 986
10 987
10 988
10 989
10 990
10 991
10 992
10 993
10 994
10 995
10 996
10 997
10 998
10 999
11 0
11 1
11 2
11 3
11 4
11 5
11 6
11 7
11 8
11 9
11 10
11 11
11 12
11 13
11 14
11 15
11 16
11 17
11 18
11 19
11 20
11 21
11 22
11 23
11 24
11 25
11 26
11 27
11 28
11 29
11 30
11 31
11 32
11 33
11 34
11 35
11 36
11 37
11 38
11 39
11 40
11 41
11 42
11 43
11 44
11 45
11 46
11 47
11 48
11 49
11 50
11 51
11 52
11 53
11 54
11 55
11 56
11 57
11 58
11 59
11 60
11 61
11 62
11 63
11 64
11 65
11 66
11 67
11 68
11 69
11 70
11 71
11 72
11 73
11 74
11 75
11 76
11 77
11 78
11 79
11 80
11 81
11 82
11 83
11 84
11 85
11 86
11 87
11 88
11 89
11 90
11 91
11 92
11 93
11 94
11 95
11 96
11 97
11 98
11 99
11 100
11 101
11 102
11 103
11 104
11 105
11 106
11 107
11 108
11 109
11 110
11 111
11 112
11 113
11 114
11 115
11 116
11 117
11 118
11 119
11 120
11 121
11 122
11 123
11 124
11 125
11 126
11 127
11 128
11 129
11 130
11 131
11 132
11 133
11 134
11 135
11 136
11 137
11 138
11 139
11 140
11 141
11 142
11 143
11 144
11 145
11 146
11 147
11 148
11 149
11 150
11 151
11 152
11 153
11 154
11 155
11 156
11 157
11 158
11 159
11 160
11 161
11 162
11 163
11 164
11 165
11 166
11 167
11 168
11 169
11 170
11 171
11 172
11 173
11 174
11 175
11 176
11 177
11 178
11 179
11 180
11 181
11 182
11 183
11 184
11 185
11 186
11 187
11 188
11 189
11 190
11 191
11 192
11 193
11 194
11 195
11 196
11 197
11 198
11 199
11 200
11 201
11 202
11 203
11 204
11 205
11 206
11 207
11 208
11 209
11 210
11 211
11 212
11 213
11 214
11 215
11 216
11 217
11 218
11 219
11 220
11 221
11 222
11 223
11 224
11 225
11 226
11 227
11 228
11 229
11 230
11 231
11 232
11 233
11 234
11 235
11 236
11 237
11 238
11 239
11 240
11 241
11 242
11 243
11 244
11 245
11 246
11 247
11 248
11 249
11 250
11 251
11 252
11 253
11 254
11 255
11 256
11 257
11 258
11 259
11 260
11 261
11 262
11 263
11 264
11 265
11 266
11 267
11 268
11 269
11 270
11 271
11 272
11 273
11 274
11 275
11 276
11 277
11 278
11 279
11 280
11 281
11 282
11 283
11 284
11 285
11 286
11 287
11 288
11 289
11 290
11 291
11 292
11 293
11 294
11 295
11 296
11 297
11 298
11 299
11 300
11 301
11 302
11 303
11 304
11 305
11 306
11 307
11 308
11 309
11 310
11 311
11 312
11 313
11 314
11 315
11 316
11 317
11 318
11 319
11 320
11 321
11 322
11 323
11 324
11 325
11 326
11 327
11 328
11 329
11 330
11 331
11 332
11 333
11 334
11 335
11 336
11 337
11 338
11 339
11 340
11 341
11 342
11 343
11 344
11 345
11 346
11 347
11 348
11 349
11 350
11 351
11 352
11 353
11 354
11 355
11 356
11 357
11 358
11 359
11 360
11 361
11 362
11 363
11 364
11 365
11 366
11 367
11 368
11 369
11 370
11 371
11 372
11 373
11 374
11 375
11 376
11 377
11 378
11 379
11 380
11 381
11 382
11 383
11 384
11 385
11 386
11 387
11 388
11 389
11 390
11 391
11 392
11 393
11 394
11 395
11 396
11 397
11 398
11 399
11 400
11 401
11 402
11 403
11 404
11 405
11 406
11 407
11 408
11 409
11 410
11 411
11 412
11 413
11 414
11 415
11 416
11 417
11 418
11 419
11 420
11 421
11 422
11 423
11 424
11 425
11 426
11 427
11 428
11 429
11 430
11 431
11 432
11 433
11 434
11 435
11 436
11 437
11 438
11 439
11 440
11 441
11 442
11 443
11 444
11 445
11 446
11 447
11 448
11 449
11 450
11 451
11 452
11 453
11 454
11 455
11 456
11 457
11 458
11 459
11 460
11 461
11 462
11 463
11 464
11 465
11 466
11 467
11 468
11 469
11 470
11 471
11 472
11 473
11 474
11 475
11 476
11 477
11 478
11 479
11 480
11 481
11 482
11 483
11 484
11 485
11 486
11 487
11 488
11 489
11 490
11 491
11 492
11 493
11 494
11 495
11 496
11 497
11 498
11 499
11 500
11 501
11 502
11 503
11 504
11 505
11 506
11 507
11 508
11 509
11 510
11 511
11 512
11 513
11 514
11 515
11 516
11 517
11 518
11 519
11 520
11 521
11 522
11 523
11 524
11 525
11 526
11 527
11 528
11 529
11 530
11 531
11 532
11 533
11 534
11 535
11 536
11 537
11 538
11 539
11 540
11 541
11 542
11 543
11 544
11 545
11 546
11 547
11 548
11 549
11 550
11 551
11 552
11 553
11 554
11 555
11 556
11 557
11 558
11 559
11 560
11 561
11 562
11 563
11 564
11 565
11 566
11 567
11 568
11 569
11 570
11 571
11 572
11 573
11 574
11 575
11 576
11 577
11 578
11 579
11 580
11 581
11 582
11 583
11 584
11 585
11 586
11 587
11 588
11 589
11 590
11 591
11 592
11 593
11 594
11 595
11 596
11 597
11 598
11 599
11 600
11 601
11 602
11 603
11 604
11 605
11 606
11 607
11 608
11 609
11 610
11 611
11 612
11 613
11 614
11 615
11 616
11 617
11 618
11 619
11 620
11 621
11 622
11 623
11 624
11 625
11 626
11 627
11 628
11 629
11 630
11 631
11 632
11 633
11 634
11 635
11 636
11 637
11 638
11 639
11 640
11 641
11 642
11 643
11 644
11 645
11 646
11 647
11 648
11 649
11 650
11 651
11 652
11 653
11 654
11 655
11 656
11 657
11 658
11 659
11 660
11 661
11 662
11 663
11 664
11 665
11 666
11 667
11 668
11 669
11 670
11 671
11 672
11 673
11 674
11 675
11 676
11 677
11 678
11 679
11 680
11 681
11 682
11 683
11 684
11 685
11 686
11 687
11 688
11 689
11 690
11 691
11 692
11 693
11 694
11 695
11 696
11 697
11 698
11 699
11 700
11 701
11 702
11 703
11 704
11 705
11 706
11 707
11 708
11 709
11 710
11 711
11 712
11 713
11 714
11 715
11 716
11 717
11 718
11 719
11 720
11 721
11 722
11 723
11 724
11 725
11 726
11 727
11 728
11 729
11 730
11 731
11 732
11 733
11 734
11 735
11 736
11 737
11 738
11 739
11 740
11 741
11 742
11 743
11 744
11 745
11 746
11 747
11 748
11 749
11 750
11 751
11 752
11 753
11 754
11 755
11 756
11 757
11 758
11 759
11 760
11 761
11 762
11 763
11 764
11 765
11 766
11 767
11 768
11 769
11 770
11 771
11 772
11 773
11 774
11 775
11 776
11 777
11 778
11 779
11 780
11 781
11 782
11 783
11 784
11 785
11 786
11 787
11 788
11 789
11 790
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
/home/tanisha1234/vscode/test-fastpage-tp/_notebooks/2023-03-22-DS-space_time_complexity.ipynb Cell 22 in <cell line: 2>()
      <a href='vscode-notebook-cell://wsl%2Bubuntu-20.04/home/tanisha1234/vscode/test-fastpage-tp/_notebooks/2023-03-22-DS-space_time_complexity.ipynb#X30sdnNjb2RlLXJlbW90ZQ%3D%3D?line=1'>2</a> for i in numbers:
      <a href='vscode-notebook-cell://wsl%2Bubuntu-20.04/home/tanisha1234/vscode/test-fastpage-tp/_notebooks/2023-03-22-DS-space_time_complexity.ipynb#X30sdnNjb2RlLXJlbW90ZQ%3D%3D?line=2'>3</a>     for j in numbers:
----> <a href='vscode-notebook-cell://wsl%2Bubuntu-20.04/home/tanisha1234/vscode/test-fastpage-tp/_notebooks/2023-03-22-DS-space_time_complexity.ipynb#X30sdnNjb2RlLXJlbW90ZQ%3D%3D?line=3'>4</a>         print(i,j)

File ~/anaconda3/lib/python3.9/site-packages/ipykernel/iostream.py:531, in OutStream.write(self, string)
    529 is_child = (not self._is_master_process())
    530 # only touch the buffer in the IO thread to avoid races
--> 531 self.pub_thread.schedule(lambda: self._buffer.write(string))
    532 if is_child:
    533     # mp.Pool cannot be trusted to flush promptly (or ever),
    534     # and this helps.
    535     if self._subprocess_flush_pending:

File ~/anaconda3/lib/python3.9/site-packages/ipykernel/iostream.py:216, in IOPubThread.schedule(self, f)
    214     self._events.append(f)
    215     # wake event thread (message content is ignored)
--> 216     self._event_pipe.send(b'')
    217 else:
    218     f()

File ~/anaconda3/lib/python3.9/site-packages/zmq/sugar/socket.py:547, in Socket.send(self, data, flags, copy, track, routing_id, group)
    540         data = zmq.Frame(
    541             data,
    542             track=track,
    543             copy=copy or None,
    544             copy_threshold=self.copy_threshold,
    545         )
    546     data.group = group
--> 547 return super(Socket, self).send(data, flags=flags, copy=copy, track=track)

KeyboardInterrupt: 

Space

This function takes two matrices matrix1 and matrix2 as input and returns their product as a new matrix. The function creates a new matrix result with dimensions m by n to store the product of the input matrices. The size of result depends on the size of the input matrices, so the space complexity of this function is O(n^2). As the size of the input matrices increases, the amount of memory required to execute the function also increases quadratically.

Example of Matrix Multiplication

  • Main take away is that a new matrix is created.
def multiply_matrices(matrix1, matrix2):
    m = len(matrix1) 
    n = len(matrix2[0])
    result = [[0] * n] * m #this creates the new matrix based on the size of matrix 1 and 2
    for i in range(m):
        for j in range(n):
            for k in range(len(matrix2)):
                result[i][j] += matrix1[i][k] * matrix2[k][j]
    return result

print(multiply_matrices([[1,2],[3,4]], [[3,4],[1,2]]))
[[18, 28], [18, 28]]

Logarithmic O(logn)

Time

An example of a log time algorithm is binary search. Binary search is an algorithm that searches for a specific element in a sorted list by repeatedly dividing the search interval in half. As a result, the time taken to complete the search grows logarithmically with the size of the list. Hence, the time complexity of this operation is O(log n), where n is the size of the list being searched.

def binary_search(arr, low, high, target):
    while low <= high:
        mid = (low + high) // 2 #integer division
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1

target = 263
result = binary_search(numbers, 0, len(numbers) - 1, target)

print(result)
263

Space

The same algorithm above has a O(logn) space complexity. The function takes an array arr, its lower and upper bounds low and high, and a target value target. The function searches for target within the bounds of arr by recursively dividing the search space in half until the target is found or the search space is empty. The function does not create any new data structures that depend on the size of arr. Instead, the function uses the call stack to keep track of the recursive calls. Since the maximum depth of the recursive calls is O(logn), where n is the size of arr, the space complexity of this function is O(logn). As the size of arr increases, the amount of memory required to execute the function grows logarithmically.

Exponential O(2^n)

Time

An example of an O(2^n) algorithm is the recursive implementation of the Fibonacci sequence. The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones, starting from 0 and 1. The recursive implementation of the Fibonacci sequence calculates each number by recursively calling itself with the two preceding numbers until it reaches the base case (i.e., the first or second number in the sequence). The algorithm takes O(2^n) time in the worst case because it has to calculate each number in the sequence by making two recursive calls.

A visualization of calculating the fibonacci sequence

def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)

#print(fibonacci(5))
#print(fibonacci(10))
#print(fibonacci(20))
#print(fibonacci(30))
print(fibonacci(40))
102334155

Space

This function takes a set s as input and generates all possible subsets of s. The function does this by recursively generating the subsets of the set without the first element, and then adding the first element to each of those subsets to generate the subsets that include the first element. The function creates a new list for each recursive call that stores the subsets, and each element in the list is a new list that represents a subset. The number of subsets that can be generated from a set of size n is 2^n, so the space complexity of this function is O(2^n). As the size of the input set increases, the amount of memory required to execute the function grows exponentially.

def generate_subsets(s):
    if not s:
        return [[]]
    subsets = generate_subsets(s[1:])
    return [[s[0]] + subset for subset in subsets] + subsets

print(generate_subsets([1,2,3]))
#print(generate_subsets(numbers))
[[1, 2, 3], [1, 2], [1, 3], [1], [2, 3], [2], [3], []]

Using the time library, we are able to see the difference in time it takes to calculate the fibonacci function above.

  • Based on what is known about the other time complexities, hypothesize the resulting elapsed time if the function is replaced. The difference between each time complexity depends on the type of multipler correlated with each. Exponential for example will be greater in time complexity than a multiplier of 5 because of the pattern of its growth.
import time

start_time = time.time()
print(fibonacci(34))
end_time = time.time()

total_time = end_time - start_time
print("Time taken:", total_time, "seconds")

start_time = time.time()
print(fibonacci(35))
end_time = time.time()

total_time = end_time - start_time
print("Time taken:", total_time, "seconds")
5702887
Time taken: 2.4118387699127197 seconds
9227465
Time taken: 3.898521661758423 seconds

Hacks

  • Record your findings when testing the time elapsed of the different algorithms.
  • Although we will go more in depth later, time complexity is a key concept that relates to the different sorting algorithms. Do some basic research on the different types of sorting algorithms and their time complexity.
  • Why is time and space complexity important when choosing an algorithm?
  • Should you always use a constant time algorithm / Should you never use an exponential time algorithm? Explain?
  • What are some general patterns that you noticed to determine each algorithm's time and space complexity?

Complete the Time and Space Complexity analysis questions linked below. Practice

Record your findings when testing the time elapsed of the different algorithms.

import time 

#constant time
def constant_time(n):
    print("This is a constant time algorithm")
    print("The result is:", n * 2)

#logarithmic time
def logarithmic_time(n):
    print("This is a logarithmic time algorithm")
    i = 1
    while i < n:
        print(i)
        i *= 2

#linear time
def linear_time(n):
    print("This is a linear time algorithm")
    for i in range(n):
        print(i)
        
#quadratic time
def quadratic_time(n):
    print("This is a quadratic time algorithm")
    for i in range(n):
        for j in range(n):
            print(i, j)

#exponential time
def exponential_time(n):
    print("This is an exponential time algorithm")
    if n <= 1:
        return n
    else:
        return exponential_time(n-1) + exponential_time(n-2)


n = 1
start_time = time.time()
constant_time(n)
end_time = time.time()
print("Time taken for constant time:", end_time - start_time, "seconds")
start_time = time.time()
logarithmic_time(n)
end_time = time.time()
print("Time taken for logarithmic time:", end_time - start_time, "seconds")
start_time = time.time()
linear_time(n)
end_time = time.time()
print("Time taken for linear time:", end_time - start_time, "seconds")
start_time = time.time()
quadratic_time(n)
end_time = time.time()
print("Time taken for quadratic time:", end_time - start_time, "seconds")
start_time = time.time()
exponential_time(n)
end_time = time.time()
print("Time taken for exponential time:", end_time - start_time, "seconds")
This is a constant time algorithm
The result is: 2
Time taken for constant time: 0.0013301372528076172 seconds
This is a logarithmic time algorithm
Time taken for logarithmic time: 0.00034618377685546875 seconds
This is a linear time algorithm
0
Time taken for linear time: 0.0004546642303466797 seconds
This is a quadratic time algorithm
0 0
Time taken for quadratic time: 0.00058746337890625 seconds
This is an exponential time algorithm
Time taken for exponential time: 0.00028896331787109375 seconds

n = 1: Time taken for constant time: 0.0013301372528076172 seconds Time taken for logarithmic time: 0.00034618377685546875 seconds Time taken for linear time: 0.0004546642303466797 seconds Time taken for quadratic time: 0.00058746337890625 seconds Time taken for exponential time: 0.00028896331787109375 seconds

n = 10: Time taken for constant time: 0.0019936561584472656 seconds Time taken for logarithmic time: 0.0006468296051025391 seconds Time taken for linear time: 0.0027747154235839844 seconds Time taken for quadratic time: 0.061913490295410156 seconds Time taken for exponential time: 0.05074191093444824 seconds

  • Log is fastest
  • Exponential time increases as space increases
  • Quadratics take longer than linear

Do some basic research on the different types of sorting algorithms and their time complexity.

Bubble Sort:

  • Repeatedly swaps adjacent elements if they are in the wrong order until the list is sorted. The time complexity of bubble sort is O(n^2) Insertion Sort:
  • Compared each element in turn with the ones before it and inserting it into the correct position in the sorted sequence. The time complexity of insertion sort is O(n^2). Selection Sort:
  • This algorithm works by selecting the smallest element from the unsorted portion of the list and swapping it with the first element in the unsorted portion until the list is sorted. The time complexity of selection sort is also O(n^2). Binary Sort:
  • Olog(n) because binary search works by comparing given number to median of data set. Also as the dataset grows, the time complexity grows logarithmically

Why is time and space complexity important when choosing an algorithm?

  • Time and space complexity directly impact the efficiency of an algorithm. The more efficient an algorithm is, the faster and less memory it consumes
  • If an algorithm has high time and large space complexity, it will become impractical for larger data sets.

Should you always use a constant time algorithm / Should you never use an exponential time algorithm? Explain?

This is not necessarily true in all cases. Constant time algorithms require less time to run and are eficient however not all problems can be solved with constant algorithms. Some issues may require exponential algorithms to solve it.

What are some general patterns that you noticed to determine each algorithm's time and space complexity?

  • Counting the number of basic operations: The time complexity of an algorithm is proportional to the number of basic operations it performs, like arithmetic operations, assignments, comparisons
  • Examining nested loops: Nested loops are a common cause of high time complexity. If an algorithm contains nested loops, the time complexity is often proportional to the number of iterations
  • Recursive calls: If an algorithm makes a large number of recursive calls, the time complexity may be high.
  • Data structures: The space complexity of an algorithm often depends on the size of the data structures it uses.
  • If an algorithm contains many conditional statements, the time complexity may be higher.

Time and Space Complexity analysis questions

  1. What is the time, and space complexity of the following code:
  • O(N * M) time, O(1) space
  • O(N + M) time, O(N + M) space
  • O(N + M) time, O(1) space
  • O(N * M) time, O(N + M) space

I choose number 3 because there are two independent variables N and M, and the variable sizes dont depend on the size of the input. So must be (N+M) and (1)

int a = 0, b = 0;
for (i = 0; i < N; i++) {
    a = a + rand();
}
for (j = 0; j < M; j++) {
    b = b + rand();
}
  1. What is the time complexity of the following code:
  • O(N)
  • O(N*log(N))
  • O(N * Sqrt(N))
  • O(N*N)

I chose option 4 because there is a for loop within one loop, so O^2.

int a = 0;
for (i = 0; i < N; i++) {
    for (j = N; j > i; j--) {
        a = a + i + j;
    }
}
  1. What is the time complexity of the following code:
  • O(n)
  • O(N log N)
  • O(n^2)
  • O(n^2Logn) I chose option 2 O(nlogn) because j doubles until it is less than or equal to n, so there is logarithmic correlation
  1. What does it mean when we say that an algorithm X is asymptotically more efficient than Y?
  • X will always be a better choice for small inputs
  • X will always be a better choice for large inputs
  • Y will always be a better choice for small inputs
  • X will always be a better choice for all inputs

I chose option 2, because aymptotic means growth of algorithm increases in terms of the input.

int a = 0, i = N;
while (i > 0) {
    a += i;
    i /= 2;
}
  1. What is the time complexity of the following code:
  • O(N)
  • O(Sqrt(N))
  • O(N / 2)
  • O(log N)

I chose option 4 because it outputs the smallest x, x = log(N)

  1. Which of the following best describes the useful criterion for comparing the efficiency of algorithms?
  • Time
  • Memory
  • Both of the above
  • None of the above

I chose both of the above, because both of these factors affect the efficiency of an algorithm

  1. How is time complexity measured?
  • By counting the number of algorithms in an algorithm.
  • By counting the number of primitive operations performed by the algorithm on a given - input size.
  • By counting the size of data input to the algorithm.
  • None of the above

I chose option 2, the number of primitive operations directly affect the complexity

for(var i=0;i<n;i++)
    i*=k
  1. What will be the time complexity of the following code?
  • O(n)
  • O(k)
  • O(logkn)
  • O(lognk)

I chose option 3 because as it loops for k^n-1 times, taking the log it becomes logk(n)

int value = 0;
for(int i=0;i<n;i++)
    for(int j=0;j<i;j++)
      value += 1;
  1. What will be the time complexity of the following code?
  • n
  • (n+1)
  • n(n-1)
  • n(n+1)

I chose option 3 because there is a for loop within another for loop.

  1. Algorithm A and B have a worst-case running time of O(n) and O(logn), respectively. Therefore, algorithm B always runs faster than algorithm A?
  • True
  • False

I chose the option False because the O notation provides asymptotic comparison. SO there are situations where algorithm A may run faster than B.