Browse Source

AC 2008 1B C

dengxinyi 6 years ago
parent
commit
81c884f6c7
5 changed files with 211 additions and 5 deletions
  1. 23 5
      2008/1B/C/main.go
  2. 10 0
      2008/1B/C/result-large.out
  3. 100 0
      2008/1B/C/result-small.out
  4. 76 0
      2008/1B/C/segment_tree.go
  5. 2 0
      2008/1B/C/test.out

+ 23 - 5
2008/1B/C/main.go

@@ -4,13 +4,27 @@ import (
 	"bufio"
 	"fmt"
 	"os"
+	"strconv"
+	"strings"
 )
 
-func mousetrap(scanner *bufio.Scanner) []int {
+func mousetrap(scanner *bufio.Scanner) [][]int {
 	caseCnt := ReadInt(scanner)
-	answer := make([]int, caseCnt)
+	answer := make([][]int, caseCnt)
 	for i := 0; i < caseCnt; i++ {
-
+		cardCnt := ReadInt(scanner)
+		deck := make([]int, cardCnt)
+		st := NewSegmentTree(cardCnt)
+		for i, slot := 0, 0; st[1] != 0; i++ {
+			slot = st.Search(slot, i+1)
+			st.Update(slot, 0)
+			deck[slot] = i + 1
+		}
+		pos := ReadInts(scanner)
+		answer[i] = make([]int, len(pos)-1)
+		for j := 1; j < len(pos); j++ {
+			answer[i][j-1] = deck[pos[j]-1]
+		}
 	}
 	return answer
 }
@@ -35,8 +49,12 @@ func main() {
 	fout, _ := os.Create(outputFiles[fileType])
 	defer fout.Close()
 
-	for i, v := range answer {
-		s := fmt.Sprintf("Case #%d: %d\n", i+1, v)
+	for i := range answer {
+		var ans strings.Builder
+		for _, n := range answer[i] {
+			ans.WriteString(" " + strconv.Itoa(n))
+		}
+		s := fmt.Sprintf("Case #%d:%s\n", i+1, ans.String())
 		fout.WriteString(s)
 	}
 }

+ 10 - 0
2008/1B/C/result-large.out

@@ -0,0 +1,10 @@
+Case #1: 441881 376754 559923 19224 327656 487024 167863 71593 40981 356382 298563 487885 577311 317994 157434 127911 548094 74700 183182 270865 13299 60379 139197 687993 582371 277827 446095 80301 652152 686280 114308 570537 143602 226052 442924 444823 608749 171272 144383 593782 2170 107282 114304 395953 655648 680095 76185 607832 552080 463547 15950 149247 659763 592020 704296 35909 481289 59412 13836 314721 462052 352668 38909 61862 108762 159601 654330 459825 244290 457759 191709 351385 141856 584305 417517 448856 472730 573570 537443 634334 12874 535317 423520 107096 96653 263606 155058 325690 452764 625443 27403 290257 185325
+Case #2: 452720 328089 720577 188213 427560 118592 622008 95497 712347 480008 819124 681137 726737 624566 662634 429697 129252 402280 824944 497572 487250 469625 749407 386973 484515 223366 672090 469389 133066 107113 812445 295507 733298 80204 812063 21775 206720 708347 332873 365022 694840 250838 714042 135129 284348 524874 545465 238538 687906 56475 22884 269441 464731 46233 744320 706713 340370 155770 547488 15983 365853 322904 469477 453778 515746 662476 22233 227026 567042 653479 570730 728042 137881 430574 279115 17425 204353 782402 323411 122391 656995 97426 377986 811811 472239 399428 96654 38147 773623 209732 769303 115642 383160 432696 53155 644284
+Case #3: 608075 34461 286494 46153 141674 211 402204 473355 379443 533451 586916 423352 602213 577003 58800 267363 674698 44917 264293 368099 33761 114452 618822 571228 273584 548191 353880 276664 626899 643036 614688 445659 552474 123727 373392 26324 194284 483916 639340 393010 501535 631156 217812 510205 624523 248645 377982 277327 571042 668382 546792 313970 514801 17845 101821 249890 89973 33441 647232 342469 19744 444572 558470 365158 361822 164528 177959 590940 559434 388723 584698 467666 210705 278010 564661 9879 29944 431993 24652 525525 641024 91557
+Case #4: 521872 627631 106090 468447 530453 355756 803938 655642 725717 43005 430101 93791 667236 356175 134150 541434 92389 211783 515883 521029 922485 3185 544022 150655 729607 799648 556933 310819 387323 865549 773745 263489 442253 17364 816382 741319 897482 755798 905889 484544 866378 33232 645425 422042 348742 620890 40218 804201 26819 212163 549469 858719 702427 436696 310476 282797 710420 12553 113096 375833 346424 784611 246890 877553 607376 69795 377532 138628 756465 94037 870506 885009 910457 771036 530232 611436 860023 32519 369482 95683 28369 762972 94269 526670 627380 443430 676267 547256 887700 330917 80360 628301 22541 140496 575088 540283 404983
+Case #5: 685872 903785 793446 279256 667014 299592 336625 786245 388909 214583 833884 532931 246999 33198 611957 919274 802912 45315 790632 289705 174104 116349 768330 12458 117610 597003 441966 906234 511203 461123 761029 669808 373653 713474 906312 520800 667882 836956 148057 789703 703893 231400 427405 877158 213042 232459 756439 160926 613744 368361 314729 817569 295177 59513 117662 364966 763237 126442 274024 78477 306502 575791 523344 209604 759524 148627 584646 155013 237963 919873 820757 500182 400104 783462 564312 839591 441171 714869 695330 723600 337337 48154 458217 400638 719999 425348 77113 41599 386894 192694 476678 427961 138603 619853 552764 22306 94116 785053 141049 106502
+Case #6: 341805 24592 60486 638525 188063 363000 328912 685799 35430 484533 46812 150344 149612 379692 57160 474152 412869 417698 189659 640850 484716 389809 404626 277598 380497 75534 356948 168487 794191 764251 308762 688882 360570 699149 486201 607721 503882 571607 576248 436101 376525 332233 760520 486379 468538 609991 46776 781202 273419 451762 20278 162586 704596 111676 430247 770742 702971 543772 613115 428429 628148 264043 46656 437834 688036 468688 409231 738708 291109 509644 135748 760164 636796 403894 623229 237454 436590 738162 439578 341990 120727 778636 556224 2031 683348 184984 653940 525221 108291 779780 47440 310404 120186 510984 466903 531405 770391 441955 592388 661659
+Case #7: 939954 452440 786403 408769 522157 592275 224176 553372 699464 791354 62907 417071 408612 476204 541358 802178 62904 430394 5000 784051 726907 170072 854760 235813 543814 400463 866521 422229 855842 539181 213371 657835 813649 544777 9390 509161 946478 883952 392456 316505 65764 394416 753467 266498 601464 759189 359843 36743 706759 828064 504855 437285 216214 789064 523343 293819 170865 508722 291351 761299 957168 161713 176494 445835 460775 291661 951674 482937 159081 509325 687996 45765 354829 326165 68494 12631 611405 726397 68976 963653 496110 415845 353552 185936 331670
+Case #8: 54940 286344 187356 967636 185390 409840 846751 350033 199971 682965 217418 768134 221173 112347 765037 194764 417039 612770 276006 422498 154335 90411 554094 908632 583311 555878 526349 353391 859642 149046 18421 329019 762500 632124 61725 181583 242494 566151 662191 964609 921277 277333 551470 107011 614628 707274 569399 273183 680828 919881 179189 163519 933304 98335 530754 578136 348373 437487 318001 924853 407393 362497 830135 15860 964571 435164 608461 868040 233102 129423 352313 934628 777062 31123 290747 230998 926998 69575 433814 666561 919114 230445 949935 182895 956918 888746 473694 969277 608446 97943 680960 356961 283715 536706 875458 272881 577759 230764 151776 282407
+Case #9: 152970 805069 676607 927757 639421 956230 91716 496247 67604 430503 586708 480251 834372 644893 111967 503895 613643 360293 286124 194359 657128 92215 852485 536211 625967 219120 196053 858209 72689 395721 400518 972110 819139 985459 256074 70063 587988 400972 859977 160933 798661 85776 37504 571230 624976 787209 647319 412414 277084 290289 128664 834486 946029 60920 223825 139761 965699 722923 154727 941623 668002 202954 88262 631864 687235 513293 180863 921650 603465 475810 913440 70239 193730 940981 383861 520903 325764 836888 779777 13776 108624 139414 249649 200126 715426 185076 923319 105295 730066 970676 764260 148332 122938 949142 561274 440429 510363 700715 787038 294024
+Case #10: 894397 523458 706631 680230 464947 581249 336653 784584 333616 564519 972421 825309 19822 71666 254508 651102 303811 261836 540913 758513 960783 328740 842511 580877 63391 494030 577797 568822 144240 781851 881925 775381 740470 420229 896382 11191 221996 392889 313614 958103 890708 381455 222047 67116 569411 492158 430912 357713 34541 545539 17943 809348 850280 892799 434372 894408 694532 439605 534298 346304 732646 370268 900155 373189 386553 555171 413709 585286 761757 159877 261517 384143 369734 471920 241431 324693 461611 281665 890605 335815 252352 510225 615888 786425 192659 208463 759134 163990 418189 342885 513171 623753 829830 341143 306441 27527 952479

+ 100 - 0
2008/1B/C/result-small.out

@@ -0,0 +1,100 @@
+Case #1: 3249 2065 3456 1245 984 1233 1154 2888 188 3175 3552 284 2992 2196 2518 1815 470 200 448 3328 3269 212 948 440 487 2462 1848 316 3549 2777 2897 327 1992 2765 637 1 882 819 2974 374 1885 725 2554 2250 217 3513 2204 2421 2227 2300 673 1921 1360 725 2809 206 2308 1316 1336 1832 2434 160 764 1371 3234 2799 756 1208 2854 1678 1468 1340 955 2813 1349 3469 2854 94 1594 1597 2911 2717 785 968 3110 2324 2830 3325 3337 2330 2560 1540 851 779 2351 2348 3179
+Case #2: 2956 3412 4071 56 2742 2937 4117 4239 206 3256 3920 292 1673 1816 90 3649 3917 1566 3623 1143 1012 3608 2429 1160 1023 3282 3742 1344 1324 563 56 1237 435 103 3750 1388 168 3049 3178 1414 4034 3385 1810 1553 751 3509 3884 1809 140 2938 4241 739 1286 2653 1304 681 2957 1715 73 4058 627 1099 1140 863 1684 1617 3968 400 1484 4183 1634 667 1070 1429 1721 1902 3644 804 3026 3168 3532 1019 3646 2113 2924 3540 103 3357 1228 1448 2747 1753 1688 1872 3089 1787 2702 31 3015 676
+Case #3: 234 4585 1468 4667 3338 3691 1501 1047 1329 874 3388 3871 2353 507 2010 811 2388 1679 235 1541 4019 2062 2069 4414 3780 2016 629 1505 1941 1187 205 1635 12 2094 4143 93 961 183 4232 646 2389 3975 434 1556 3137 1198 1418 1525 2509 1284 2433 1952 813 699 784 4319 4313 4559 4705 2623 4036 2713 477 477 1473 2053 1316 2257 460 3534 4380 973 1282 3961 3136 3910 3310 1099 1874 1485 1459 3213 383 3542 3184 49 241 599 3744 771 660 3949 2611 2269 3398 468 1462 2766 2596
+Case #4: 1903 2622 2827 607 1493 3920 2941 878 1931 1401 2076 3186 1686 1172 265 3456 1739 3230 3174 3232 164 3872 3951 2191 3060 2276 3066 3260 297 3721 906 4557 3168 3044 3992 3942 3498 3453 4501 749 107 4443 3667 2759 4142 2092 1302 1078 269 4033 3466 3532 1459 2761 2456 99 206 4203 765 528 3358 1389 2961 1317 2077 282 1403 3220 2534 1556 703 1936 2437 3888 490 1903 1250 3360 2667 2194 931 4456 1744 3975 2764 1019 2081 4113 2179 1806 4010 27 4185 2592 1602 3696 3308 2277 3602 2811
+Case #5: 1037 1940 3101 2236 1210 365 3062 2929 3466 2795 1187 1458 1092 3483 671 2445 1695 2067 1883 1931 1725 208 141 660 1304 2168 3020 1834 2661 504 2867 951 1478 2011 1972 1376 2261 1313 2733 1314 1074 388 2733 3468 2501 2450 1537 934 261 1800 2557 2973 1561 2171 534 1424 37 1627 403 243 2571 1857 634 1034 2482 3111 2776 519 987 391 1985 95 2951 3366 3471 1460 1624 718 1480 3025 803 2390 1211 437 568 1670 3001 1687 176 1523 1199 1607 2675 594 2103 1459 114 1762
+Case #6: 2830 4243 4221 394 3222 3522 1988 3510 3214 1063 4239 599 1080 1150 3329 2562 1215 949 2147 2625 3747 4499 668 3527 517 117 3702 1576 1366 1423 1360 3926 404 1825 4425 1928 1833 3679 976 1492 3703 447 2707 3129 3838 1875 951 3959 3478 129 3862 743 577 153 2242 2795 674 2224 1398 534 2128 3278 3812 4154 3768 4042 1862 3600 4460 806 4578 96 3989 383 1935 2432 90 2241 1341 2294 99 2498 3440 1288 2391 2193 1511 1406 2722 3729 1574 3600 3210 542 3142 3902 4437 253 2787 3730
+Case #7: 2 1713 3756 3997 1716 2323 3251 1071 963 356 3244 117 1515 4081 2979 832 2121 2848 1621 145 2380 3502 3428 3610 1275 628 3833 556 2367 3490 3241 4113 3954 317 1438 1264 1116 3795 2306 687 2350 4192 868 1982 3341 1161 1829 1973 58 124 1024 1568 1544 808 1526 707 4162 3313 510 1980 1780 3049 3839 1339 1480 320 1850 2177 4169 2741 356 2978 80 2109 1938 2423 2924 3418 4190 2127 2917 2313 605 2093 3235 1246 4029 1689 471 176 181 1311
+Case #8: 4075 3937 3141 603 4366 1870 1073 3793 885 751 4441 610 3440 3531 4538 3118 2374 3903 3499 1333 4146 651 3546 1574 3224 4530 1770 439 2126 2705 3181 3135 3095 3070 477 4652 11 4653 2019 1123 4644 4354 4446 3450 2088 1126 726 3358 3426 3712 1517 1359 1383 4696 3684 4632 1313 2996 3886 3205 1600 3309 4130 1321 4693 1942 1578 1362 4657 2747 4638 3370 2749 4292 2851 2810 265 1535 4667 3183 14 2743 3875 4573 3536 2305 4415 1667 41 1735 563 4720 4038
+Case #9: 3492 3541 2148 4177 2835 2583 4511 4509 4803 4304 1075 574 576 4139 2694 2284 3703 1182 1775 3802 825 3692 3172 608 4307 3404 2481 4349 1987 667 4044 2705 202 1525 1153 1361 4436 3944 1143 3089 950 328 168 2969 1086 53 4443 1233 1782 2180 1027 4319 2972 2404 2744 3368 2064 2850 2457 2828 4377 2719 1812 3437 3888 2031 1570 974 53 1857 1670 1205 3131 1653 1147 2207 621 2942 4248 3971 689 24 2718 1223 3893 3601 523 3889 1500 227 1377 452 3937
+Case #10: 4094 286 4433 360 1840 1370 4119 4372 2870 838 3624 3570 2263 566 200 889 2690 2688 2709 1579 3411 1630 3469 3811 1785 1042 2781 4115 4670 1178 501 2741 2444 1838 2653 2948 2327 3992 2656 1629 1421 121 1500 3537 864 4427 3478 3466 3771 822 4182 1595 1000 1722 1796 872 2869 1552 2380 1837 3650 546 2750 3197 1738 750 3339 3408 1276 1498 1656 4093 3801 2334 2428 1396 2371 3047 2219 1914 3973 2783 179 601 3579 1582 3324 193 3193 734 3724 4687
+Case #11: 1255 1204 3057 3257 3071 4611 2121 3414 4756 2959 267 526 1511 1628 1561 728 3868 3006 4608 877 1777 3889 2148 887 1076 1338 1750 4045 1190 1170 1476 3976 2638 739 2052 2693 966 4714 3696 1366 250 41 12 2200 3924 4080 325 2611 3258 1660 958 1025 2237 4027 3956 2512 2384 3737 4458 4095 1451 3581 3452 3812 4086 2881 726 140 4623 3615 4296 302 1890 4637 3643 3359 2846 3335 3820 1123 1529 2229 4806 457 4583 3575 3379
+Case #12: 4572 4513 3398 4256 1135 3196 4214 3513 2502 4829 4800 77 835 2523 1692 288 195 1522 1312 2420 1950 1036 885 3999 3711 1562 2463 2221 4806 421 4614 2974 2852 3849 917 160 2161 1769 1971 1581 313 2003 464 3286 339 2136 1780 1009 4763 3321 468 2424 2854 2841 2855 4554 4794 3083 925 1591 3949 2870 369 1235 3004 3415 3443 3729 2919 3670 5 3672 1093 131 4647 2956 4808 3285 991 844 2803 988 2191 4825 845 1875 1022 4789 1512 4036 3204 2106 2796 3067
+Case #13: 553 2056 1162 994 1397 2384 88 711 2841 170 132 236 1464 281 2731 2607 2781 1015 419 1513 1182 329 1204 2270 2065 1503 2842 516 2696 2464 1406 2458 1289 1843 3049 116 559 2619 1891 1447 153 385 94 963 736 2332 1123 88 2651 487 522 2040 236 1386 1689 665 817 419 2883 1014 2201 388 769 1351 2557 2457 403 2811 3057 2405 2187 2262 1512 1536 2365 1796 1747 848 1593 3117 2314 1877 514 2666 442 667 31 180 3021 2945 1963 568 960 340 784 588 977 1814 27
+Case #14: 4481 1852 2544 1209 2482 4524 2451 2604 2009 2184 2600 321 3312 1319 1261 1669 1046 2345 3710 80 2188 2825 1579 2497 551 4523 851 1661 1562 1069 1588 528 3872 772 4457 1936 4155 4038 2993 967 2711 1708 4064 1167 504 1293 1420 4256 2732 4413 2012 1776 809 3770 726 1866 306 1744 3049 638 2746 1988 2446 4194 1316 4363 3850 3996 2050 761 2312 4353 4244 489 2113 2829 2058 1387 4041 4098 1926 4506 1934 2041 3806 2665 1562 279 4075 138 4483 2431 4577 3633 3374 3046 65 3017
+Case #15: 2345 3295 4035 2106 2128 4182 4244 3173 858 4245 2951 4397 3661 3775 3550 4142 4326 4210 2100 1627 3544 3895 666 267 1005 736 1892 3170 203 3761 4314 3242 4288 345 3916 1946 4414 1009 2221 1686 827 1545 1893 56 1531 3899 2917 3914 2961 2660 2547 4036 3294 1139 1471 1330 1831 1800 2124 2196 2356 3353 1419 4234 2679 4127 4193 3124 1991 1294 4376 3975 686 1714 836 3333 499 932 3223 929 4386 3415 451 507 1513 1484 3047 1438 1141 1925 851 540 900 3908
+Case #16: 2435 2700 2355 1790 2463 1997 1673 1590 526 507 2038 4 492 2449 781 2980 2763 48 3139 3002 2604 3383 1899 36 196 251 2921 3056 921 1105 3115 2839 928 397 1882 549 105 1631 2005 332 437 1633 473 2737 1701 2407 947 1304 384 1257 2537 1483 606 1673 560 955 833 3150 288 3191 3458 2323 1462 1112 1942 996 1092 1220 3029 726 817 1595 35 841 2481 3132 1586 495 365 3263 3228 2295 1890
+Case #17: 1220 629 2014 2382 172 269 1776 2181 174 1912 1605 721 1457 2309 741 2302 915 1515 414 961 929 2109 1227 792 1075 2385 1706 950 116 838 69 75 983 1608 1349 1239 1697 1637 1568 1602 974 2100 416 25 111 1950 680 1383 2175 780 1592 704 664 2252 316 1292 2426 189 472 1797 2288 292 2117 1665 472 2420 1293 274 68 1367 913 744 2280 1825 2323 694 285 1010 2113 173 2407 1865 413 2015 87 1399 840 963 511 1514 1367 1545 1904 1477 342 1234
+Case #18: 2480 807 2062 4417 2047 48 3611 1316 3540 2548 3937 642 4640 1987 2100 3944 2513 2926 4252 154 231 885 2050 2754 980 3038 3689 2971 1354 2331 721 1686 4848 1 4571 4290 48 4547 134 466 2874 1735 3610 2133 3672 4600 1101 2658 4790 604 1123 3592 599 3586 2558 4529 668 1132 4061 1398 2039 3711 240 3810 4401 946 3840 2029 2658 2726 2557 3003 1837 3659 1577 2580 2233 3503 234 1 1543 186 2564 3381 960 1279 2397 2831 202 4408 4432 589 4379 1842 1081
+Case #19: 1 3 2 5 4
+Case #20: 4345 2248 3360 1644 303 1966 1422 1700 2946 2117 2493 2869 1305 1820 4437 4536 2880 34 2619 987 1760 1056 2198 3162 1729 55 3505 1316 2146 518 1481 1073 3900 545 2309 1390 2132 3791 2965 3487 3406 6 2983 715 1055 2648 718 3033 4303 2253 4271 1919 2251 2658 425 187 2252 1946 4343 2434 2485 3825 634 440 2209 2372 3243 3295 469 385 3411 599 3038 724 650 3795 627 3650 3136 629 4191 1073 969 2258 925 101 2432 1735 591 302 4500 1185
+Case #21: 4471 4606 4437 3827 3625 805 4482 2395 2402 885 4652 1148 3071 2735 1702 4411 4314 1988 2914 1673 1657 2939 164 4295 3981 4582 47 3592 979 761 4795 2895 3668 1251 190 3835 2402 4148 1072 2209 3110 1031 3258 1371 173 927 3610 3560 4286 4478 2819 185 4666 4584 4683 3982 4293 2857 1395 2095 1237 2095 2242 1935 4234 3143 2458 3790 2377 3510 3927 4323 800 4212 1741 872 1764 26 2354 2912 2993 1961 2637 2854 993 350 1829 3289 3006 254 1692 3194 1908 4493
+Case #22: 111 637 3800 532 3196 382 2544 2681 2041 3465 3049 990 738 2758 3279 3250 3581 2722 2304 3303 2586 200 1204 3744 3720 1052 3978 692 1643 821 3162 3210 3936 3816 2394 1184 3376 1760 1298 209 1609 312 3729 2352 1082 3515 201 600 2680 1771 3822 3735 2213 3057 2249 4188 1244 2377 3852 1111 3804 3555 413 1630 2526 88 3465 1152 139 2568 2888 2846 276 745 2718 3146 1406 2376 3158 3905 558 3898 1069 3500 2860 2734 1302 4162 1371 3958 2541 2439 684 810 3272 2648
+Case #23: 3072 213 2334 22 2307 849 680 919 820 362 1553 2206 2717 2485 1250 1296 2711 1100 2516 487 913 602 2813 1101 3145 3176 955 842 2430 1440 1230 1279 138 280 346 2707 2075 154 1863 657 3294 1487 515 2036 1068 183 1693 1588 25 1068 2121 93 3241 1478 630 1470 1211 2548 865 682 885 2715 2445 441 1837 302 2863 42 1705 32 953 261 1102 2436 2435 1347 2553 1335 2233 341 2900 2996 2307 1523 1573 627 2261 975 1267 1563 2833 1203 3329 685
+Case #24: 1344 3727 2159 777 1620 3514 1166 2369 1664 3111 2561 479 3151 1411 1285 2995 2082 3049 3092 2356 3205 3106 198 830 2299 279 2601 2191 1655 2927 696 3848 1259 1922 3712 3806 2753 1856 4004 3108 411 3289 1543 816 2420 3484 3510 2406 2005 3179 3156 2315 2654 2274 1665 1555 3229 93 2115 3604 3536 1452 3242 2990 1921 1770 556 177 3754 2763 950 658 1661 2281 2325 2553 3313 1830 3687 2159 336 2371 3284 3639 28 513 2427 1511 3698 3737 3546 387 383 2436 1157 1678 1305 2466 3843
+Case #25: 1562 4349 3116 3259 1463 4153 1149 1905 7 2806 208 2595 3872 3188 612 159 1574 4275 4296 637 2537 3490 1522 1882 1510 959 2598 213 21 4265 244 990 4413 2911 2967 350 136 2848 1865 3691 3297 2727 3936 773 3333 2765 3098 3784 3067 4386 1011 4210 4536 2544 2881 340 2281 3556 3643 4357 4237 3150 2650 3246 1303 1312 1937 1328 2298 2533 4089 912 1708 1270 329 4555 3376 2486 3072 3391 2134 2119 1156 4368 1595 2973 2618 1522 1724 3912 3929 839 1472 1424 1540 140 395 151 1544 888
+Case #26: 1248 931 116 2710 2857 3000 2371 2406 80 2668 2700 1143 2477 986 1409 2431 493 2162 2815 3848 883 563 360 2306 18 3798 1262 2424 1114 2331 1068 3551 812 3127 178 2719 3775 2426 2717 3171 747 2910 533 3323 3077 1911 1421 3451 1402 2948 2805 2913 2759 82 2560 1512 3428 1268 273 302 3204 729 2777 22 2129 1024 1439 1843 2924 580 989 2904 3015 877 1022 428 489 1962 3580 3652 2720 1775 2144 1024 401 3334 1182 643 3756 2597 1919 787 68 1249 1367 2866 596 1239 2361 3042
+Case #27: 4338 3535 3579 670 2640 2745 1034 2047 2564 3470 1074 1830 2836 913 2137 3044 3765 3720 3569 490 3388 1029 3417 2819 1426 2403 3766 1087 3433 254 2682 645 1438 3497 2901 488 3751 1560 1798 380 1187 2089 2849 3346 3428 110 2362 3592 2600 4031 1277 53 220 3336 1659 4149 2625 113 1858 604 690 566 1783 2241 4039 2255 2223 596 1411 3659 598 1712 3654 162 1157 4070 2089 2016 4277 2132 1842 3835 3594 3361 1363 3658 445 1059 1921 1410
+Case #28: 3157 2439 2523 2706 434 1395 3656 2066 3175 3299 1561 1020 3792 1742 1042 667 3362 824 1843 1585 1376 4098 886 3596 297 1268 3982 1795 3376 3079 230 4116 3204 3325 1888 482 4262 3587 341 3338 3939 2730 1370 620 2145 360 1373 120 518 2578 1366 2812 3112 829 809 1926 2136 3529 2548 3705 2278 3906 950 778 3506 2289 1358 2863 1859 1354 134 3333 3463 4302 2965 2953 1460 1320 1625 683 3894 1591 2818 2628 3720 1289 2872 3652 2128 1280 1179 1965 2000 3866 3406 767 1510 3273 1244 139
+Case #29: 3309 719 3181 2102 718 2781 239 3082 2675 179 3401 3061 3162 2596 2133 3744 2896 3948 3310 3777 903 893 2020 3149 1078 3778 142 294 2866 3644 3316 1290 911 3333 873 1837 3032 1066 975 2291 1967 3794 528 3693 242 930 2844 2332 1297 3851 3342 1191 2521 3898 1716 1789 2336 1320 2301 254 3741 3197 3051 2868 2893 3347 2001 607 1907 1756 2667 1115 703 1843 3685 1079 1169 2432 2441 165 1238 3073 3727 2615 2347 2635 1766 146 2969 2681 972 1416 574 2940 3183 3230 3239 3282
+Case #30: 2 8 13 4
+Case #31: 334 2385 2458 298 631 138 3893 1926 1489 3339 3499 1466 1824 2889 3884 1325 245 3324 1265 497 719 4027 1628 2707 2729 487 3337 3172 2241 1646 3957 4103 1136 2895 136 1384 2892 3045 2271 2601 4422 2360 643 3753 2785 1846 1705 3275 2503 2136 4054 3705 4331 2740 1387 1606 2706 3501 4119 4096 3533 2107 3675 4456 546 3168 989 224 2725 2751 457 4088 3825 3057 878 4361 335 3603 2354 2561 1218 2540 567 954 3575 2573 2020 908 1267 3163 2797 1396 3801 435 153
+Case #32: 107 532 3926 2721 1508 3525 2060 2323 4475 4595 2695 2002 2271 1689 139 1429 3089 954 4684 3265 20 837 1817 4887 1185 3095 4826 2098 1083 564 4409 2568 3366 1753 569 3296 154 3651 2397 747 2696 3257 3711 4393 952 403 1829 939 1066 432 4523 3985 279 2816 4376 318 1650 1370 1644 3404 2423 960 242 4163 985 604 4327 2398 2342 3792 624 1704 648 2394 3594 550 3026 4532 4539 3929 2937 1656 3118 926 2645 2851 957 2029 79 774 3543 1469 1501
+Case #33: 2624 4532 763 4175 916 4318 2706 1648 1383 1464 501 2462 3050 3787 4092 4286 1606 139 318 4137 817 3572 3841 3804 1715 783 496 2299 2826 4018 2475 2651 1152 4042 3018 582 188 3258 1242 2469 114 1073 3634 3102 763 4106 1975 1701 3121 2864 1324 1445 650 836 3618 2413 3296 3534 402 1504 4446 4007 4185 3604 1305 1894 1464 219 1763 2580 3824 957 1460 4573 1255 3803 567 2296 3210 2418 1962 1420 3727 2042 3162 2490 1294 1241 3522 3442 2774 4224 2771 2114 245 523
+Case #34: 356 4810 2348 3801 914 655 2632 4562 3148 1909 3358 4121 3436 3245 3240 1772 799 4184 298 3602 2346 1372 2504 1002 4672 4237 3158 4901 2791 4850 3275 3922 504 379 3941 3071 4014 1634 2406 4068 1394 3877 2713 1687 4490 2699 661 4846 3655 1976 772 2706 986 3520 3215 4757 2184 4222 259 2201 3191 2556 4330 2404 2200 2012 3083 4661 2815 969 4807 455 4959 4639 2606 1089 2588 1273 3571 3925 2428 2357 3153 1359 3086 2 2662 4410 4708 3050 4450 2133 1944 569 1870 1027 1450 858 2949 4959
+Case #35: 119 1833 1107 1382 2969 1019 2202 1966 2483 1963 1331 1065 1238 1672 179 1970 2068 1569 1987 3953 939 2370 427 298 213 3462 1756 1830 57 1595 3245 554 2091 2225 388 2427 573 428 2362 555 3302 1920 1464 1555 570 370 1879 1307 112 1973 3324 2054 884 1117 490 477 3958 55 2538 2793 2051 3105 2427 861 2825 2322 3946 3150 3764 131 494 2517 2448 58 2856 2364 2579 2089 3477 601 834 3574 2415 2821 2944 233 3868 677 1277 2856 3108 2990 3850 888 2841
+Case #36: 1222 2032 917 1628 1649 1694 2738 495 1467 2978 3117 1716 2214 244 3994 2929 1703 519 2652 2282 1126 634 729 3100 545 2478 2463 2987 1126 1034 1335 1852 949 3162 2763 1035 849 3441 995 4048 3408 208 2866 283 2300 3270 2963 3099 1612 3806 3285 2724 527 3794 3339 688 311 3478 1393 2921 4001 2739 1736 1732 1360 803 235 3299 203 1241 1270 756 2923 1349 879 245 3041 2764 1945 2079 4293 4062 870 4106 4100 1969 1326 2968 3055 2179 1659
+Case #37: 1505 2116 4200 2942 181 4076 2224 2029 1520 2294 3235 167 3445 1162 177 3198 4368 1028 2492 2376 712 145 2239 4323 1037 3420 1410 818 3384 3147 1273 815 3588 2278 2902 2681 268 1709 1579 10 3417 2286 36 2549 3684 727 3621 29 3427 2394 230 1740 1942 4548 1600 861 1286 3304 2351 2480 937 2537 1078 310 148 4047 1965 4236 678 1874 1107 3551 4141 2862 3607 3439 38 128 2915 3275 4165 2163 3284 586 3124 2340 1268 2753 3573 1681 1193 4415 3731 2261 3144 3191 4206 2912 1158 2250
+Case #38: 1819 3154 639 435 3011 1744 3650 3738 232 4524 2584 1314 1095 2218 663 4550 2899 1143 1618 303 1578 2742 1070 4472 1277 3280 953 2348 1974 4178 2589 3114 2911 4138 3375 2877 969 3506 3015 625 2556 2220 2579 361 240 2324 3181 4463 4565 4252 148 1512 3972 1738 244 53 465 3003 905 1297 3036 3968 2406 220 4330 4069 3248 4205 2440 2020 1026 1193 2390 2914 96 3400 1200 2502 4333 115 1762 253 4086 2436 2150 159 2446 2175 81 1432 2299 1988 2598 34 4516 2770 1699 1630 99
+Case #39: 368 3568 854 1778 1748 2773 3198 1577 3371 1579 1823 2202 2128 924 2913 785 2584 1107 587 3781 996 3172 2027 3279 3440 1699 2325 1774 1917 52 663 3111 808 481 3789 435 2669 4446 1096 2378 3937 3670 3095 1116 2186 214 461 227 4247 4163 2781 4271 88 4713 1507 1605 43 4850 3590 1369 4289 3905 3065 3704 743 4057 4607 3626 3083 1120 880 45 1221 1000 4214 2799 3049 2671
+Case #40: 1441 784 2209 1389 308 693 410 1941 3550 4700 4498 2772 3609 2241 1887 80 864 3221 4881 4634 1116 2902 1658 203 3483 611 1454 250 1319 1850 3525 360 2534 1325 1836 4128 2323 302 4594 2614 3723 3733 342 3553 2428 4801 2802 4711 2778 872 1514 169 1757 2729 4686 4123 1216 674 4492 1181 3096 280 2158 1898 656 3753 1436 2212 1863 3626 3931 2059 4831 2143 555 3663 1788 4273 1445 3060 3477 2873 499 101 1097 3395 966 4306 1480 3175 579 4300 2235 1404 2165 4869
+Case #41: 1677 1955 3118 2150 2378 4628 1288 4275 1113 2576 4729 617 1517 1311 1650 4169 4575 1323 2580 2991 2501 4410 3298 3088 2347 954 3199 2093 2315 4247 2100 4629 1454 3989 3215 775 2737 3510 4572 121 964 4207 1489 3668 649 4238 2676 1685 2027 2111 510 4289 1919 2697 4184 109 545 1054 1865 4638 816 4434 16 1368 1791 3989 1700 1120 764 3416 3012 4284 2927 2014 2597 1157 1785 3250 588 1487 3398 3354 557 631 2253 422 100 224
+Case #42: 1662 4519 3404 545 3210 3214 519 3137 4113 913 1044 327 2096 4263 3697 4792 91 4409 1069 2408 3508 1882 4265 1720 4677 372 1137 2143 1822 2102 877 3914 500 4335 2931 2432 4665 3920 2238 2521 3765 17 3123 1111 2775 4374 3976 2710 2850 908 570 2137 4102 573 1024 3423 1654 2059 1875 4810 1681 3949 3148 841 2736 1266 4372 1284 3204 3222 1249 4078 2952 1468 678 2430 274 1221 863 2124 7 3015 4170 1487 2391 4250 4153 2175 1677 1223
+Case #43: 1966 934 2830 2634 3052 2738 4333 3237 3717 3283 4736 2788 711 2214 3553 3939 97 4255 3140 783 3120 2085 3878 3155 2685 2062 3922 1930 1504 4518 347 1533 3265 4190 1194 382 310 2015 2146 1757 1144 1719 909 2025 2659 1686 4324 140 3247 605 260 652 1880 1766 2733 3224 325 3702 579 3752 932 4039 1721 3259 625 1584 1375 1170 452 2002 3908 1899 165 4190 3351 1147 4136 1581 4152 3578 2093 2540 2040 4152 2980 362 2038 1362 1867 885 4658 1287 1333 1739 4638
+Case #44: 931 815 1032 1495 1135 131 1024 721 431 686 13 557 962 869 641 1139 538 103 534 1520 32 169 918 1439 897 109 1260 1439 298 887 1380 971 1085 509 806 988 88 1102 1142 349 4 592 124 1062 308 1142 554 1089 140 21 641 841 227 342 560 1448 393 341 669 443 653 1502 492 471 1205 169 1599 360 352 597 424 1437 690 1339 9 267 727 85 222 1428 584 214 1483 279 1444 391 1113 429 996
+Case #45: 2104 1645 2351 3184 3559 1072 3590 2908 1918 2216 806 1202 544 15 987 1680 1673 460 3344 3809 2557 50 3207 1389 212 3903 3449 2280 605 3564 2615 2412 1012 3155 3093 115 2106 456 3431 1060 1272 3007 1089 2853 1114 4170 1299 23 1396 2788 3839 3859 975 3170 3887 922 2196 2583 2151 4178 982 1506 68 3178 1663 151 3128 280 362 3986 2137 3247 343 943 420 4122 1273 888 273 1302 834 1340 286 2251 2522 2430 3595 3956 4149 310 3576 2663 1334 3729 522 1246 4081
+Case #46: 4102 4316 3722 4418 2112 1301 4323 3865 1446 2056 3495 4455 1019 527 379 3539 2986 3105 3707 3691 523 858 2332 4361 4433 2702 2599 2094 2817 2651 58 684 2591 1622 105 4278 3690 3525 307 801 2255 430 2584 4189 762 1649 4192 710 499 983 28 4153 2865 2149 3784 109 1048 2052 2962 1219 2587 2309 1301 2264 2945 2343 1251 3492 3089 307 2816 2242 1539 696 2071 3927 3347 489 3469 3918 2786 167 3622 376 1352 1480 3026 4018 2926 2022 283 4221
+Case #47: 529 796 4039 747 2055 943 376 1724 4102 4020 1501 793 2091 2733 3924 1296 2012 4044 945 193 3959 4457 4036 2879 2463 3581 3923 1585 4147 3054 2481 1193 2678 3787 4722 3415 1676 565 3833 1269 2465 3484 385 3773 1262 4377 1765 1990 4006 3818 4354 2940 3207 1276 3846 1899 4611 89 2854 28 2376 3059 1294 720 4191 2066 4562 3643 3350 2377 1714 2969 3754 3517 384 2952 3951 2907 4192 2658 3414 1551 3731 3593 4791 112 4707 2800 2490 2175 1356 3643 1217 377 530 4649 1916
+Case #48: 3066 2286 4546 1186 2483 3072 2831 4694 2542 3240 4344 2312 3509 4334 1885 4738 4338 4731 1537 111 314 11 2717 1383 2424 4550 4172 308 1090 337 4097 50 2716 2473 4574 368 3652 87 3068 4834 155 271 248 341 2641 2629 4611 4116 169 2514 1299 3732 698 483 1540 4484 4623 3864 2564 2449 1541 1934 3617 2909 1568 3078 238 3569 2566 4623 835 4655 3280 2517 3198 2282 3721 3467 922 2768 2374 4713 848 4666 4604 3673 1087 1823 1713 1052 1814 4457 2698 62 233 2884 504 2518 2365
+Case #49: 1508 3635 2114 46 3477 952 2440 2739 3780 3872 413 2717 1708 36 3000 233 1676 1048 2734 355 1012 2023 1091 2116 2574 3851 715 1279 3746 3703 3698 3478 195 2489 3638 420 3657 3709 2497 955 773 2707 2916 1584 1751 3266 2167 2151 2240 3434 3021 3134 669 3802 1164 3229 2693 3656 2302 3706 2083 1111 1481 2219 3872 148 373 2605 1706 1946 2761 1135 3061 459 1851 214 3108 1493 409 293 1607 2646 3207 985 3403 2423 77 114 3072 979 3031 3158 291 2788 1695
+Case #50: 952 4147 3463 4368 3347 2763 2358 4060 3138 2595 3484 3985 3519 186 325 953 2813 116 3806 4461 2795 1164 2917 3158 1058 2848 1257 2811 263 2863 31 2415 1740 2087 3237 563 2750 4200 3934 225 2391 4344 4493 2354 2166 1368 701 3142 2122 4056 608 3893 2866 3082 264 1094 575 4338 2748 4176 2520 4561 810 2936 2158 19 2269 3393 914 2694 548 3943 3193 895 2635 1300 3632 266 683 1337 4206 4196 1108 161 1420 3755 2706 4397 3042 1490 490 4185 3710 1610 1157 3301 3852
+Case #51: 2879 345 964 1337 426 4840 1867 1817 3082 3084 3610 1963 1069 2336 2532 257 1039 904 898 4331 1324 37 4608 52 123 829 3631 44 2298 332 1777 220 2475 3040 4009 1935 2506 2528 2618 1265 959 4016 4365 3798 4723 1290 3183 3805 4491 4474 2127 4211 650 3449 4191 3345 3682 490 2153 2942 2587 1942 4794 3296 59 3637 1206 4066 2353 1871 3617 328 1198 1789 875 531 1479 3865 2086 4778 612 1295 3175 4187 3207 2815 2332 3378 3886 4628 3785 881 3241 3097 233 2689 4463
+Case #52: 808 2590 2437 2510 2681 2616 1348 1607 3427 3603 3402 1574 4147 2402 4739 2826 4722 4112 2052 3432 2004 1253 4638 2955 1537 2368 929 4551 2229 4329 436 1877 444 1692 612 3719 3316 2623 3113 4881 4030 3248 535 4143 85 3491 1596 3052 3926 2402 4338 2012 45 822 1016 4678 3207 4433 589 252 82 3184 3882 4687 1850 1949 683 192 3053 3796 3045 4782 1340 4165 312 1568 718 3023 515 755 4017 4409 2754 1569 2836 1560 3414 447 3766 4554 596 1843
+Case #53: 704 2405 830 1404 1387 218 673 2649 3594 4477 3003 619 4024 1451 2770 2667 1805 113 2974 162 4622 4000 1039 1807 3393 3237 3891 2341 2979 2947 3258 2443 1191 1061 4617 2516 4561 2137 1602 3118 3373 3542 2134 4278 2600 4400 4369 2301 289 901 4379 432 4348 4302 2799 4151 329 1732 2493 4 3016 748 1988 2906 4251 2325 4764 3955 4059 1912 3933 1383 878 4816 1956 3211 3038 3395 3985 3231 3247 3076 2769 283 145 3728 993 1166 350 739 1263 911 545 2405 2748 2514 3284 1532 3915
+Case #54: 938 4318 3020 2661 1080 66 179 3362 2718 3583 1945 3337 1447 3662 2619 2457 1545 281 3933 725 2923 478 4553 2055 2372 2998 1548 3354 829 3798 3051 1472 2776 313 2200 1598 543 2246 4639 3860 2888 1641 2258 3935 755 883 560 258 3 4361 842 2201 431 2609 1580 4077 708 472 470 3230 3364 3451 3842 1565 198 577 1457 3918 4383 89 1056 4676 4522 1600 547 1761 610 727 1749 3245 465 4172 215 2144 137 1431 3314 636 2815 497 3881 4437 2993 3186 1205
+Case #55: 2354 1387 545 2428 2503 1662 1926 2423 1624 2502 1633 3046 2712 3270 79 1220 135 521 493 1060 1176 3431 252 424 589 2812 3428 2631 25 827 3305 3817 1165 2165 3234 1341 705 2386 3229 2261 730 2207 3131 709 664 2391 3138 487 3103 2081 2267 2785 1573 969 2781 1796 758 2662 3776 3162 532 335 665 316 1794 3257 99 1373 219 3587 19 1886 613 448 2435 2584 3887 2812 685 1531 3774 2815 1688 628 534 3704 1830 2575 2961 3190 2052 3925 3163 2920 3190 3641
+Case #56: 1949 3841 3578 4517 2667 282 2652 820 1436 2781 204 3598 387 1306 257 2227 1914 4199 3551 2488 1383 3532 3223 1918 1250 2829 3526 931 2708 108 3781 1380 1179 866 59 240 4187 83 267 2560 598 3831 1137 3968 3237 1826 3050 896 3976 1122 1622 4539 1493 4406 582 3823 1072 3028 1410 2775 469 2572 2509 4087 2834 177 4179 936 2161 2015 2795 919 2951 1408 1310 1188 1273 1272 1379 3620 480 3337 1487 2309 977 24 3120 2411 1231 2185 4248 2471 3248 3051 165 2948 1280 771 4338
+Case #57: 1420 2415 1321 641 1510 3960 3995 4194 4203 3332 2757 522 115 2734 4077 2992 789 3957 453 2897 3749 3135 3333 2169 1949 1161 1884 3296 3139 665 2902 58 1452 2968 3127 1323 1950 584 2841 2806 4319 3588 375 4494 4065 2715 1748 4015 638 1247 1739 3976 2893 1503 318 3070 2803 972 203 4125 4328 2969 1024 4539 3940 4223 601 1705 3630 4599 2657 4445 2528 2685 783 2908 2709 331 930 1813 813 2535 646 208 3586 2097 2140 2687 2605 393 3571 4135 2726 3076 2310 4137 4374 2769 957
+Case #58: 2754 2632 709 909 2058 2154 4564 1243 3738 1148 364 1409 1337 4636 4582 3472 4279 88 995 3157 2242 3835 2102 3140 4368 1987 2397 1746 3037 3522 2451 1333 4190 89 1119 4649 162 4629 3690 3204 2230 1375 3297 3561 2561 4247 516 1459 362 1786 3289 1130 4366 4715 3305 3534 2489 22 1764 2038 2890 2905 3783 4168 1595 423 4535 1159 285 3385 3606 1604 3309 1757 2960 2959 2953 3968 2812 2904 4333 4299 2238 2675 4756 4835 2429 2720 2764 894 2923 617 2866 2831 2296 1243 512 331 4249
+Case #59: 4186 1296 3097 3971 3090 1189 4129 559 4749 4742 940 4687 3652 2793 2261 1610 2450 3411 1165 4613 3311 2311 655 2640 1771 2229 1507 489 1980 3550 3526 3673 4326 1915 172 3403 4038 4135 3837 3688 1517 311 1350 2343 315 3823 1331 3813 4325 794 3932 2722 3280 2089 104 2962 1855 4653 4454 4549 1510 3929 222 317 1663 115 2338 582 2965 2851 1717 2121 2196 1747 4087 4807 1471 4282 3418 4509 3313 3570 2704 2534 4228 688 2959 4368 629
+Case #60: 2510 1684 3829 2647 1864 3961 1084 3884 3072 1691 1871 3622 560 3337 2575 3638 1397 492 4081 228 4428 2963 3454 278 2432 1882 762 4117 4244 63 1797 2208 3623 1553 3391 1781 3245 1096 3638 3329 2759 276 4651 4017 2310 3341 799 3149 2470 3990 3081 2685 2301 1642 480 1047 314 1579 4034 2292 917 2405 556 154 3158 2863 4618 1131 416 4153 1213 3080 2127 1912 3232 1446 4597 4126 4310 2247 293 1924 1503 660 943 2553 4627 1391 1780 1019 4168 3382 3455 2239 2482 1699
+Case #61: 1780 1618 4061 581 950 3280 1128 721 1206 2547 894 2794 1215 3512 2464 4549 2485 3712 1372 555 570 3338 853 3202 3552 2041 4539 2839 2282 3064 1993 807 4190 3458 1099 2596 1859 3940 454 12 2082 3752 1192 547 1811 3751 2060 2409 2043 3661 1412 1390 343 4270 1635 3811 1019 3452 2696 526 3970 4438 4435 3479 3745 3244 1343 4647 4409 4340 2802 3898 4652 1711 1693 258 330 3885 1703 3648 4221 184 2636 476 3105 4233 555 3496 1097 3457 2500 602 4341 3935 586
+Case #62: 270 713 2953 2929 1362 4093 1422 579 1789 2164 3301 3896 393 847 2110 3929 2131 1961 1659 3738 896 1094 917 2330 3167 818 3343 2940 3660 1764 3936 1058 2975 2777 231 349 1789 2348 3616 2867 2336 318 1095 963 4121 3035 3 1303 3562 4225 1813 3294 2044 3907 589 2135 2087 493 2331 3395 2063 409 3142 1189 416 1981 1202 4038 1596 3191 2517 3 1271 2233 1972 1380 2602 1644 3915 2445 209 4032 1793 2816 4216 1897 3543 2444 582 2067 232 3603 3760 100 1580 1611 1822 38
+Case #63: 795 4166 1103 924 114 3579 3661 1677 4358 454 806 2939 2582 2021 2563 3540 135 3944 2292 528 2502 1338 2341 527 4314 568 11 4021 4264 3705 1649 2523 4105 4467 3820 1181 315 3172 3170 1288 1774 976 3674 102 2928 3730 1012 2635 2252 3852 4225 267 3067 4268 3662 3997 1746 2701 3358 1796 2020 2917 2724 1026 3121 720 3644 2034 2171 1258 836 677 247 1125 2847 117 746 131 1714 2246 2190 3453 3252 4590 4146 1481 4069 1188 3671 2912 93 343 4117 4186 4148 1404 4585
+Case #64: 700 2477 1259 1602 2877 2362 555 2389 2607 137 2252 2135 2194 1221 1445 2502 2235 1264 2643 1869 1839 1532 2607 1335 1332 2901 1440 24 1868 2671 468 1746 712 2291 2897 619 1882 927 331 2941 294 331 2080 2865 67 25 2562 1623 1314 2514 2099 1348 2736 2875 2733 799 1409 1534 1258 2363 2586 805 1578 278 2237 1741 401 2871 1075
+Case #65: 2690 3062 1483 1628 3287 2501 2407 3317 4430 1175 2574 1589 4060 1966 1792 540 900 3622 381 929 1121 347 1046 733 575 3656 3192 2889 3069 3823 2704 2760 2150 1061 3978 3047 2638 613 4359 4383 345 2895 1874 4284 2798 3090 2086 4289 2217 415 2983 1342 1341 1747 3646 1869 1687 2313 2607 3939 3344 3703 3083 2962 1644 4205 3499 891 612 1249 1081 3446 1246 1056 1057 2694 1176 2090 4000 3726 3973 3993 2057 3519 3868 2186 1834 2988 3997 2603 2050 2325 977 1760 291 2600 162 926 1840
+Case #66: 4152 3028 3208 1604 2689 2407 2573 3394 2891 3920 1344 1109 2961 3025 3162 1157 2776 4049 4553 4147 1827 1066 875 1582 3190 4075 1762 1261 3774 1306 1629 725 3227 3028 3700 4026 4695 4352 1723 1395 3587 1252 56 1555 2291 2730 49 4384 951 2870 4050 1983 3233 34 2469 2063 4419 796 1460 721 2979 414 4348 53 1862 642 3184 2118 186 3109 4632 4436 1241
+Case #67: 2998 1998 3055 2944 1920 2104 4680 2918 1725 2117 2310 1474 4134 4528 658 3503 503 677 1778 2326 2115 2569 3590 4611 2519 4823 1120 3862 714 614 891 3455 1278 828 1124 3856 3021 2183 4176 2093 2950 1414 3510 2017 4113 2476 3789 793 1659 174 733 4035 4764 1005 3441 1980 3049 3478 496 379 3649 442 4567 1881 4370 600 2269 861 1248 2222 1014 4577 3031 4059 3122 1606 2063 2045 169 2601 4282 1907 1805 1377 3704 3888 2166 3882 795 4315 962 875 116 2707
+Case #68: 2805 783 764 3354 4498 746 4596 2984 3113 162 4095 2479 3837 470 3879 1156 3161 4366 4727 2152 1827 1524 2216 2108 444 377 3693 523 298 4609 1687 3993 3091 271 4739 3171 3400 2698 952 3246 1201 159 2571 448 1028 2433 1645 539 462 672 4142 2759 1227 1879 1304 1333 2919 1602 1021 1170 2967 1094 3945 2116 504 2716 4294 1998 3145 1781 2742 1312 1556 2324 698 3845 4376 2142 3083 550 2480 3377 2074 4073 4298 4754 3475 2521 4824 3016 2467 2650 575 2615 3780 4884 4773 1083 725
+Case #69: 3 5 1 3 5 4 4 1 3 5 3 3 4 3 1 3 4 1 4 4 5 3 3 1 3 2 5 3 5 3 2 1 1 2 3 5 5 2 4 1 1 1 3 3 5 3 2 2 4 4 3 2 1 1 1 5 4 1 4 2 3 4 4 3 3 2 1 1 1 3 1 2 5 5 4 3 3 3 5 1 2 2 1 1 4 2 5 5 2 1 1 5 4
+Case #70: 1619 269 1970 29 1151 1291 3313 43 3603 1637 2325 231 1276 408 2101 1780 1610 1838 1649 323 1215 3670 1744 214 3503 1866 1428 562 2004 3653 3369 2346 544 2600 3170 2633 3019 2795 198 2288 2580 3712 1924 2168 3634 1038 802 1480 886 1577 840 3487 3464 3673 1421 689 520 3758 1281 3043 2231 2698 50 339 3675 3110 1981 1133 2307 529 2525 930 2477 609 1354 815 111 3143 3145 200 2287 1069 2040 2380 1191 976 2067 1582 2195 1124 2936 385 3256 1642 2257 3414
+Case #71: 3671 3215 1321 3556 3212 1268 1802 2988 131 264 1086 2847 2520 577 752 3044 3635 3791 625 3755 4052 3911 972 2648 1328 3740 443 2546 2648 35 1614 3677 918 288 3765 860 344 1114 2666 533 3554 2137 3187 2013 1575 2070 3471 1580 1330 1613 1583 3976 3881 42 1614 2229 340 2041 433 2725 440 420 2311 1560 1299 3546 196 3802 813 2403 925 2972 3928 132 1284 78 4043 100 2954 171 812 773 2746 1766 894 1159 786 835 2018 3953 3875 2887 205 4009 3254 1085 904 658 1801
+Case #72: 3987 4765 1399 3632 3083 837 4883 270 3787 2173 4394 4335 2053 1728 3919 150 2088 1869 1432 975 63 1995 3799 4319 2611 2957 2610 2170 624 4038 2949 3370 428 3764 1831 3498 2811 2342 4661 422 2177 1753 3982 4216 4851 685 4581 2289 3987 1564 3849 1947 2360 2745 3445 4509 3522 131 695 3619 2047 4797 2299 3130 2453 2898 584 1300 3822 3604 1044 572 1124 4221 2080 4443 839 1240 2233 1486 2319 219 955 1286 2750 3347 3212 363 2359 2904 46 3457 2733 4910 1609 4403 1420 962 33 1277
+Case #73: 1090 3114 3218 3523 3694 1141 1272 3501 3857 442 463 2219 3731 3762 2355 3083 2259 1983 523 1398 2146 3290 1176 368 2250 4367 3143 4133 2324 1724 1328 1708 1153 365 3103 3798 4113 1142 3123 2019 3751 794 3350 1440 1266 758 2694 1970 1306 792 3989 330 3948 1167 2382 3980 4221 931 3760 766 4015 2540 432 2381 647 167 2205 1711 522 3939 4302 808 1367 778 3435 2712 30 3382 3612 400 4130 1001 520 1367
+Case #74: 2432 3823 1536 2011 1821 3005 4190 2089 1845 1308 761 3798 4222 4483 3339 1809 3630 4278 916 2462 2003 4650 2623 3751 2420 1952 4175 3385 267 3038 429 4591 423 2885 1888 3078 999 4500 2364 3659 1368 2604 3103 2122 334 3504 905 29 4305 3126 614 2661 244 1528 1990 4187 2635 4523 442 2614 4001 249 1270 2455 1879 276 3595 3603 701 2206 1271 1483 1532 793 3447 4207 2532 3228 2552 1304 3575 566 3553 653 59 3536 3686 2682 1688 1706 2196 3693 1 1995 4299 4657 2312 4116
+Case #75: 1739 260 3707 4121 1765 1157 2008 4750 583 1355 2187 4459 4379 4415 4048 986 2879 2692 3317 2932 1204 2138 1142 3796 41 77 1742 801 2389 2740 3216 2280 1084 3173 3802 1218 412 246 265 1817 4521 4020 1226 2107 812 1419 4421 2814 2440 345 3164 2801 4607 4632 3143 163 3775 1426 2438 1752 2878 4261 1844 3015 1862 2552 1548 1451 3138 2455 1181 2590 555
+Case #76: 96 4332 3336 2270 2095 2515 3212 3260 3603 1036 992 3496 3796 2686 776 1145 58 3037 1043 1573 861 189 3134 2191 2752 3611 1511 4358 2142 3971 2703 1395 4611 2156 1944 1655 3004 2166 2077 102 2660 3932 2290 71 960 182 950 3117 211 955 901 3164 2003 2471 1579 2825 4122 1719 471 3767 2620 4483 3930 3236 2531 753 4500 3882 3242 2746 2948 4195 3615 4022 3841 2592 2450 1190 781 1813 2653 3225 2798 863 3374 842 2621 508 314 2855 4099 1506 4534 1797 65 417 3506
+Case #77: 525 311 71 3410 1042 4676 2693 4032 794 3660 2456 3329 2281 1772 3733 3572 1204 3312 4150 873 2437 1919 2697 2664 3837 1806 1992 3883 1683 3944 2149 1730 1005 4659 3452 2146 3851 890 2911 1486 4297 437 2416 4143 2081 773 1330 1640 4661 1378 474 69 3374 2112 3734 3520 2676 1886 4350 2983 1204 540 896 2109 1335 2860 3246 2071 507 3394 4562 4717 3817 1657 3014 4407 623 2350 3123 749 3593 2536 2427 1549 3550 2624 4152 2933 504 4109 3993 1101 3814 3503 1621 3629 4360 1822 2883
+Case #78: 3532 396 3787 2179 3884 3014 3974 2792 1156 2700 3749 4082 2959 226 2733 1973 3620 1619 1894 1700 4032 1087 2556 3437 1967 2857 3259 2782 2098 118 2189 1044 2829 3021 812 1508 3495 940 328 507 698 2981 3288 349 451 1797 3306 1434 2001 4079 2686 3838 2232 3977 275 2040 3477 3144 850 3125 2383 1894 3865 3174 2581 389 2541 1405 2582 218 1375 3575 3731 2359 2548 3913 2203 1224 872 114 1155 2923 1995 2206 424 1194 1800 3143 1495 1276 3422 1977 76 3737 1707 3177 2000
+Case #79: 3124 2668 4000 1198 471 2118 2713 498 265 3283 3180 2765 3718 3969 407 1200 2461 3216 718 1360 2854 2415 1154 3194 1922 1325 1412 1015 308 1666 2981 2195 540 2855 314 794 338 1905 3002 1413 698 4098 2835 2436 3971 3691 3127 1276 583 2011 2449 3961 723 4131 2491 3730 1004 3836 496 3889 579 1498 1744 802 1450 351 4046 320 1845 1593 2498 3729 817 2326 3970 1175 1270 161 1419 2927 2023 2545 2971 3488 1549 3917 4121 558 2762 183 2046 428 1441 856 1660 2172 2288 3320 1185
+Case #80: 2040 2859 355 334 1038 1124 3832 1543 391 565 1958 3029 735 2704 2587 2836 1366 2834 902 3904 2726 1191 2668 1492 1487 1076 1049 1488 2476 3114 781 3580 3564 2589 11 3485 3873 2871 3297 1277 1720 2468 636 2571 3114 3572 1444 641 2827 3489 3754 3272 17 1524 1815 2956 21 3421 2910 162 3927 3296 2410 2826 3442 3480 1318 1395 1812 39 2461 2045 3070 405 2175 915 2495 1520 3183 1451 2619 2875 3417 1360 1583 3136 3531 2719 238 3232 1917 3127 1953 267
+Case #81: 1930 726 1139 4317 292 4892 3875 2452 910 1145 1835 4813 3654 2051 2870 2782 4728 4893 4214 199 2040 1497 4885 1783 4190 1421 1365 86 989 3111 798 3473 4233 4457 3596 4513 1577 3695 2347 4189 566 2152 4042 1711 1596 3382 4464 2931 2424 1523 1183 1885 1985 267 3557 3020 232 2665 2474 3127 825 4484 4723 3342 1799 3478 4741 4677 4385 2519 200 914 4922 3743 3018 2125 4068 1708 2184 149 3605 623 3088 2084 378 4302 789 3312 3683 1309 4710 1907 1403
+Case #82: 2778 1663 2382 281 3487 297 2046 3284 3207 2553 3754 70 1794 537 3082 3543 2348 3357 125 2024 2355 1170 211 1930 532 1522 1125 1281 3430 1397 1296 825 3703 2547 2804 2468 1566 3495 2685 4001 3606 858 3166 751 1491 1282 774 1995 81 1907 845 1798 193 556 3760 907 1885 1928 3665 2116 1346 2264 2263 2184 521 2424 1044 1600 2590 995 2962 3688 3951 804 1586 2759 3654 2365 150 3394 2792 3830 1946 3356 2753 3334 3239 39 1860
+Case #83: 4187 957 2891 1412 2967 540 3581 256 4481 1155 4475 2184 1868 1878 4769 311 199 1545 57 371 4275 3676 3347 4683 213 4253 410 697 4672 2962 4117 49 1831 3915 1176 4399 1589 3020 415 1397 3297 83 1108 1826 2793 4468 1183 1518 1118 2713 4474 1759 2324 4670 4641 1830 3371 4337 3039 165 2966 2507 3242 1702 1 158 1817 3006 2375 2836 384 613 3002 1483 3327 1856 1040 840 1184 1397 3175 3140 819 3204
+Case #84: 2218 1626 2280 2411 2990 203 960 1509 2767 184 3211 2819 1568 3663 2880 2960 1139 1909 1583 1592 1106 3200 1754 3962 2069 3513 686 1025 3640 2099 1880 2696 1636 1961 808 1308 1832 282 2641 3372 3289 386 4317 3579 1868 3562 1440 1654 2795 2618 2521 160 4192 4406 2828 3294 315 3925 989 1897 4463 3591 3702 2049 1984 2933 3021 2348 1453 4466 805 3281 378 1434 1999 4017 4507 4000 4425 2805 4403 457 2334 214 1439 2472 878 841 3140 4058 3066 1140 3707 492
+Case #85: 3808 3535 3356 1996 3362 312 2227 1366 612 1464 3360 4285 1568 4284 1270 3827 1589 4215 869 1825 3348 65 2145 3087 1810 3573 1557 74 2261 517 3690 497 3278 2554 1799 545 2191 1942 4536 1460 4580 2973 4734 940 2999 3153 2334 1675 1491 449 1116 2481 1952 378 4527 1339 3340 4184 1982 4285 3632 2171 3862 2030 2620 1657 1541 3035 1169 1407 1102 3846 787 1035 2099 890 1364 4297 8 4496 4316 2776 1802 1385 2455 1931 2943 2326 3931 2472 397 2865 700
+Case #86: 2583 3221 2999 4005 3513 1256 2912 112 1373 3991 1534 2006 1251 1475 2665 1250 264 4322 2934 2015 36 3077 1129 2881 87 2009 2555 4006 2009 963 2982 2409 951 513 2868 82 3640 2376 4417 4175 3309 3669 1282 4381 4320 800 1317 857 117 2434 3391 1753 3993 2337 542 4300 631 3906 35 1653 172 2985 1109 3947 2819 1952 3205 1904 2094 4138 3708 1796 3240 2723 3230 736 2448 2537 795 2772 983 1442 2888 2529 1141 1909 3954 1042 1522 795 663 2558 2604 2436 654 2606 2720
+Case #87: 249 922 800 408 1427 241 4560 1277 2514 1387 3641 481 3721 135 2966 1917 934 1970 4027 3322 3875 2033 2083 3586 1411 785 2974 2538 2925 735 731 4476 4294 1528 3391 4545 1547 3626 232 2400 3604 760 871 2645 804 241 3070 3411 3557 930 683 3805 2005 2067 2687 2950 838 1602 999 4347 72 133 2680 3734 3038 329 1960 3377 2662 3394 1107 166 2541 553 4050 3159 4143 2139 3498 3376 2528 3352 4028 1098 3731 4576 3423 974 905 2453 901 683 2611 4426 3259 3478 4220
+Case #88: 3643 3677 1356 4397 1696 3064 179 4905 1358 2938 946 1273 3808 1034 922 3182 3328 4628 4737 4597 4610 834 4562 3276 36 3369 1789 4499 4181 693 3541 2709 271 3320 4029 4590 3864 3817 986 3717 372 4355 3999 4301 3018 3232 2544 4389 4783 4819 2386 589 1483 2381 3519 2437 2326 357 546 4267 1009 3410 1890 1382 3090 4909 651 4163 3850 3129 1169 4137 534 3934 1769 3737 2396 3760 4361 2566 30 1273 4920 2912 2650 4061 1554 2607 4083 4511 2708 3251 42 1501 3127 696 929 4435 3316 2397
+Case #89: 86 85 71 60 85 88 73 67 19 13 80 4 72 62 17 88 7 58 57 80 37 59 20 18 5 43 45 79 48 21 72 18 72 46 75 31 71 59 54 82 7 38 62 78 87 84 56 76 77 26 76 57 41 68 33 42 65 82 31 70 44 82 8 40 9 17 52 51 76 9 17 5 29 84 34 21 88 48 53 49 24 37 10 1 52 20 16 61
+Case #90: 898 504 2521 2616 3944 3005 583 1662 2033 3943 1792 2235 3152 2827 885 24 1050 3375 3637 268 111 2289 3766 1254 1219 902 1319 3306 2704 1536 1031 3281 3275 3647 3954 2283 2870 2600 115 490 869 3984 1811 199 2732 1909 1851 3912 2500 1588 1473 1727 1678 270 1665 31 3321 3407 1072 3172 3509 3392 3857 3338 1361 2342 834 1289 2742 2184 3911 1171 3978 2596 77 2834 3276 2978 2804 913 202 190 816 3118 1000 1728 1445 2583 3111 2509 4009 1544 1842 1029 2382 3192 27 2556 1551
+Case #91: 2704 2267 2406 3054 2865 3019 2577 3401 16 397 4191 4452 3392 1771 3501 4545 3537 1492 1940 482 764 4679 2187 1408 1853 2597 3838 4065 3708 4371 3700 1331 2526 157 2840 607 821 2503 4060 4773 3702 4408 24 352 1154 4150 4735 4782 4319 3026 3233 2111 4082 1247 1771 2473 3297 2034 2882 904 739 229 3750 3213 4088 3330 1488 2685 1841 3790 4053 2484 3280 2612 3979 3657 3328 2914 785 1483
+Case #92: 3314 4297 2728 747 3992 3304 4641 258 4480 2215 2208 854 1302 476 544 4159 2497 4867 345 973 1642 1146 2891 3936 1811 267 4230 3037 789 3915 4560 552 3958 4945 2278 2574 4148 2876 409 4241 186 3542 4141 1372 2480 1947 2367 1165 3135 4756 2032 1197 491 3015 2419 1152 4820 1353 2854 1299 2966 3802 1994 1634 3247 2026 2795 2831 2679 2417 956 3957 1980 2639 2742 915 3995 1852 1394 3335 156 4643 2641 4267 3891 3818 3919 4517 3422 1375 831 3468 2470 4989 4336 2895 879
+Case #93: 946 3397 3296 628 4560 2853 2602 998 1875 2546 3895 760 3148 121 3255 4419 2101 1210 710 2809 3366 3646 1563 375 615 4206 2120 441 691 42 4572 1217 2414 3262 189 4412 2591 1508 1459 552 656 4407 1280 2200 482 2376 854 1355 4053 2024 3666 2047 3381 2294 734 4380 954 1943 3541 2817 3720 4691 4744 1808 1232 900 1460 334 310 400 4089 4572 719 4850 1579 505 3923 4097 1421 3614 1265 1660 1941 4927 1352 4886 1713 2009 3746 3481 3842 2050 2035 1445 4825 2960 4503 1020 2015 2614
+Case #94: 4319 2706 1835 3985 3531 1992 1837 1199 1146 4136 2710 4560 3500 1664 3777 951 2910 2966 717 4016 1303 3206 4198 3181 3974 3169 1837 1783 1186 1405 2470 483 1811 2362 1567 723 3118 3876 239 590 2713 4553 3309 3697 3085 2525 3636 3703 3303 2633 1699 379 3611 4520 4456 4620 225 1269 2474 3930 2418 1761 3145 2485 548 1243 728 1721 1656 866 3990 3324 3125 976 4588 3993 1955 3792 4130 1756 889 4227 2700 3828 4319 4643 1810 731 1852 3437 4667 1494 3284 2165 4265 2319
+Case #95: 1511 2919 3344 142 1760 2771 2213 1521 4487 881 3245 4486 17 1114 482 1948 2355 2180 3651 1411 3381 4412 3367 3129 2468 1037 1490 2356 1540 677 1486 344 2974 4205 1358 3110 676 2157 1507 2884 1258 3118 1119 3041 3601 3848 1748 2913 4042 3788 970 3711 935 820 2943 2728 1366 2705 1640 1174 1539 380 4647 1141 3909 950 1902 4586 2512 4219 3773 4630 1540 3837 3574 2151 2453 2666 2464 506 3284 3168 1312 4411 3462 97 656 259 4313 3411 203 1453 402 2941 3718 337 3585 1278 3783
+Case #96: 4182 1139 408 3482 2106 262 620 3735 739 371 4895 68 2562 511 3659 626 456 2775 1416 2052 4823 138 1036 1670 2843 4827 593 753 2692 1364 3641 2976 2215 776 734 3055 126 2466 315 2507 4345 2596 4171 2741 4120 864 4574 421 3023 1744 3662 2522 2554 2099 2283 3837 648 2950 3288 4817 385 4902 501 3059 4726 919 2161 2029 3665 4379 1977 4919 3480 3130 165 1182 3208 1268 2944 1307 1184 1524 3984 1904 4693 2809 2202 2463 4423 2679 1606 4847 4451 4468 1467
+Case #97: 4073 4 2590 3057 2435 3452 3305 3413 1245 2097 4376 3571 4115 2204 1554 3624 3637 2298 4461 4129 3613 3300 2582 1672 205 893 3779 835 1757 675 1285 420 1983 3749 2153 1324 4084 1542 2240 1386 4086 2734 688 178 3064 623 3136 3646 3467 3700 2758 3644 2860 3292 811 1156 3302 2206 4240 9 3466 2610 4277 282 3170 185 925 4187 2790 1889 134 3846 2945 275 3544 2964 1708 340 989 912 3695 4010 307 1341 2921 3396 3778 4263 1395 3264 2985 3099 1101 3620 4435 172 104 3515 2276 2382
+Case #98: 3977 205 3477 1590 3074 3572 2651 972 2499 329 2468 642 623 2665 1693 1643 598 3360 2489 2251 2537 2165 1676 2572 575 311 3646 232 1043 2407 2345 558 2 2127 3071 2588 742 348 3063 4202 2638 3520 766 4163 3359 2022 4029 657 2180 2715 261 1215 492 1128 2304 2487 1530 3435 2806 3773 3327 3330 244 4052 1890 3063 2006 1548 356 510 525 3081 3825 4207 2503 4381 3973 701 1424 3939 872 3797 4356 861 3168 2736 2958 3523 2666 1943 1435 1916 4034 1077 2782 2778 2617 473 1597
+Case #99: 1433 2715 1337 1571 1994 1677 1457 2249 1938 1668 954 2872 1753 74 102 732 1219 2175 945 591 2028 20 859 2438 27 2821 50 686 102 2501 1670 1849 200 1169 883 2619 1731 1907 1843 2275 261 1294 2173 1023 2309 27 2428 2475 151 290 1273 1283 1581 1667 1863 430 2194 2425 2429 1642 2483 518 1870 887 1900 2429 2626 145 1388 162 1985 720 239 1618 2911 1007 1139 2892 2131 1401 47 2873 327 2611 1482 1238 448 725 2590 27 1460 421 515 1583 1037 973 2551 2896 2113
+Case #100: 2816 3678 3389 1329 790 1589 3482 2168 4398 1022 2410 4200 4934 3028 1441 1391 1094 4101 4153 714 683 160 432 475 418 3188 4927 2568 4264 2355 4749 4289 3764 2286 4617 425 4872 1278 745 367 1014 3366 869 4474 1543 3438 3856 2958 2915 123 980 3859 2469 3403 1863 395 1387 1846 3898 2852 4997 733 181 3705 3289 4091 1670 4307 1402 4556 2203 3805 455 3856 3754 3998 3572 2419 1520 633 81 1587 1702 4817 153 1313 1580 1929 1608 1286 4887 92 1755 98 1911 1844 4101 430 2622

+ 76 - 0
2008/1B/C/segment_tree.go

@@ -0,0 +1,76 @@
+package main
+
+// SegmentTree ...
+type SegmentTree []int
+
+// NewSegmentTree ...
+func NewSegmentTree(n int) SegmentTree {
+	var st SegmentTree = make([]int, 2*n)
+	for i := n; i < 2*n; i++ {
+		st[i] = 1
+	}
+	for i := n - 1; 0 < i; i-- {
+		st[i] = st[2*i] + st[2*i+1]
+	}
+	return st
+}
+
+// Update ...
+func (st SegmentTree) Update(i, val int) {
+	i += len(st) / 2
+	st[i] = val
+	for i > 1 {
+		i /= 2
+		st[i] = st[2*i] + st[2*i+1]
+	}
+}
+
+// Search ...
+func (st SegmentTree) Search(beg, val int) (end int) {
+	val %= st[1]  // Deal with the loop
+	if val == 0 { // If val is zero, set val to st[1]
+		val = st[1]
+	}
+	n := len(st) / 2
+	slotCnt := st.Count(beg, n)
+	if slotCnt < val { // If slot cnt is not enough, start from the begining
+		val -= slotCnt
+		beg = 0
+	}
+	beg, end = beg+n, beg+n
+	for st[end] < val {
+		if end%2 == 1 { // If is right child, move to left child
+			val -= st[end]
+			end++
+		}
+		end /= 2
+	} // Find the interval that contains end from bottom to top
+	for end < n { // While end is not leaf
+		lchild, rchild := end*2, end*2+1
+		if st[lchild] < val {
+			val -= st[lchild]
+			end = rchild // Find in right tree
+		} else { // st[lchild] == val
+			end = lchild // Find in left tree
+		}
+	}
+	return end - n
+}
+
+// Count ...
+func (st SegmentTree) Count(left, right int) (sum int) {
+	n := len(st) / 2
+	left, right = left+n, right+n
+	for left < right {
+		if left%2 == 1 {
+			sum += st[left]
+			left++
+		}
+		if right%2 == 1 { // right is not included, so --
+			right--
+			sum += st[right]
+		}
+		left, right = left/2, right/2
+	}
+	return
+}

+ 2 - 0
2008/1B/C/test.out

@@ -0,0 +1,2 @@
+Case #1: 1 3 2 5 4
+Case #2: 2 8 13 4