├── .DS_Store ├── README.md ├── day1_GoogleCodeJam2016_QuallificationRound ├── .DS_Store ├── 2016 Live Coding using CPP by Eunsol │ ├── .DS_Store │ ├── CoinJam.cpp │ ├── CountingSheep.cpp │ ├── Fractiles.cpp │ └── RevengeofthePancakes.cpp ├── 2016_QR_A_CountingSheep.py ├── 2016_QR_B_RevengeOfThePancakes.py ├── 2016_QR_B_RevengeOfThePancakes_v2.py ├── 2016_QR_C_CoinJam.py ├── 2016_QR_D_Fractiles.py ├── A-large-practice.in ├── A-large-practice.out ├── A-small-practice.in ├── A-small-practice.out ├── B-large-practice.in ├── B-large-practice.out ├── B-small-practice.in ├── B-small-practice.out ├── C-large-practice.in ├── C-large-practice.out ├── C-small-practice.in ├── C-small-practice.out ├── D-large-practice.in ├── D-large-practice.out ├── D-small-practice.in └── D-small-practice.out ├── day2_GoogleCodeJam2016_Round1A ├── .DS_Store ├── 2016 Live Coding using CPP by Eunsol │ ├── BFFs.cpp │ ├── RankandFile.cpp │ └── TheLastWord.cpp ├── 2016_R1A_A_TheLastWord.py ├── 2016_R1A_B-RankAndFile.py ├── 2016_R1A_C-BFFs.py ├── A-large-practice.in ├── A-large-practice.out ├── A-small-practice.in ├── A-small-practice.out ├── B-large-practice.in ├── B-large-practice.out ├── B-small-practice.in ├── B-small-practice.out ├── C-large-practice.in ├── C-large-practice.out ├── C-small-practice.in └── C-small-practice.out ├── day3_GoogleCodeJam2016_Round1B ├── .DS_Store ├── 2016_R1B_A_GettingTheDigits.py ├── 2016_R1B_A_GettingTheDigits_v2.py ├── 2016_R1B_B_CloseMatch.py ├── 2016_R1B_C_Technobabble.py ├── A-large-practice.in ├── A-large-practice.out ├── A-small-practice.in ├── A-small-practice.out ├── B-large-practice.in ├── B-large-practice.out ├── B-small-practice.in ├── B-small-practice.out ├── C-large-practice.in ├── C-large-practice.out ├── C-small-practice.in └── C-small-practice.out └── day6_GoogleCodeJam2017_QualificationRound ├── .DS_Store ├── 2017_QR_A_OversizedPancakeFlipper.py ├── 2017_QR_B_TidyNumbers.py ├── 2017_QR_C_BathroomStalls.py ├── 2017_QR_D_FashionShow.py ├── A-large.in ├── A-large.out ├── A-small-attempt0.in ├── A-small-attempt0.out ├── B-large.in ├── B-large.out ├── B-small-attempt0.in ├── B-small-attempt0.out ├── B-small-attempt1.in ├── B-small-attempt1.out ├── B-small-attempt2.in ├── B-small-attempt2.out ├── C-large-practice.in ├── C-large-practice.out ├── C-large.in ├── C-large.out ├── C-small-1-attempt0.in ├── C-small-1-attempt0.out ├── C-small-2-attempt0.in ├── C-small-2-attempt0.out ├── D-large-practice.in ├── D-large-practice.out ├── D-small-practice.in ├── D-small-practice.out └── D-small-practice.out2 /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Algorithm Study Day By Day 2 | Algorithm study using python day by day 3 | 4 | 5 | Since April 4, 2017, I will study algorithm using python. 6 | And I will participate in Google Code Jam 2017. 7 | So, I will focus [past contest of Google Code Jam](https://code.google.com/codejam/past-contests). 8 | 9 | ## Future work 10 | + [Google Code Jam 2016 Round 1C](https://code.google.com/codejam/contest/11254486/dashboard) 11 | + Graph theory study (find the connected components using DFS and other ways and find the longest chains) 12 | + Graph algorithm such as Ford-Fulkerson algorithm, Hopcroft-Karp algorithm 13 | 14 | ### [Day 6](https://github.com/Eunsol-Lee/algorithmStudyDayByDay/tree/master/day6_GoogleCodeJam2017_QualificationRound) April 9, 2017 15 | [Google Code Jam 2017 Qualification Round](https://code.google.com/codejam/contest/3264486/dashboard) solved using python 16 | I get 50 points on qualification round. 17 | First problem [Oversized Pancake Flipper](https://code.google.com/codejam/contest/3264486/dashboard) was easy. I used greedy algorithm. Whenever there is a '-', I flipped. But I think I could ameliorate my solution if I just count changing point. 18 | Second problem [Tidy Numbers](https://code.google.com/codejam/contest/3264486/dashboard#s=p1) was easy. But I failed two times on small input. I used wrong algorithm at first. I realized the problem during challenging, I fixed it. 19 | Third problem [Bathroom Stalls](https://code.google.com/codejam/contest/3264486/dashboard#s=p2) was not easy. I used mathematical solution, but official solution looked more simple. And I got 'incorrect' judgement on large input. That was because of python division logic. Using '//' instead of '/' had solved my problem. 20 | I couldn't solve last problem [Fashion Show](https://code.google.com/codejam/contest/3264486/dashboard#s=p3) during competition. After end of the competition, I saw contest analysis, and solved. It is greedy but very interesting and hard. 21 | 22 | ### Day 5 April 8, 2017 23 | Rest 24 | 25 | ### [Day 4](https://github.com/Eunsol-Lee/algorithmStudyDayByDay/tree/master/day2_GoogleCodeJam2016_Round1A) April 7, 2017 26 | [Google Code Jam 2016 Round 1B](https://code.google.com/codejam/contest/11254486/dashboard) solved using python 27 | I also studied basic of linear algebra due to [problem A. Getting the Digits](https://code.google.com/codejam/contest/11254486/dashboard). I was very impressed about linear algebra solution that I saw in [Contest Analysis](https://code.google.com/codejam/contest/11254486/dashboard#s=a&a=0). 28 | I need to study graph algorithms also. 29 | 30 | ### Day 3 April 6, 2017 31 | Rest 32 | 33 | ### [Day 2](https://github.com/Eunsol-Lee/algorithmStudyDayByDay/tree/master/day2_GoogleCodeJam2016_Round1A) April 5, 2017 34 | [Google Code Jam 2016 Round 1A](https://code.google.com/codejam/contest/4304486/dashboard) solved using python 35 | I also upload [c++ code](https://github.com/Eunsol-Lee/algorithmStudyDayByDay/tree/master/day2_GoogleCodeJam2016_Round1A/2016%20Live%20Coding%20using%20CPP%20by%20Eunsol) when I competed last year. It is fun to compare between c++ code and python code. 36 | 37 | ### [Day 1](https://github.com/Eunsol-Lee/algorithmStudyDayByDay/tree/master/day1_GoogleCodeJam2016_QuallificationRound) April 4, 2017 38 | [Google Code Jam 2016 Qualification Round](https://code.google.com/codejam/contest/6254486/dashboard) solved using python 39 | I also upload [c++ code](https://github.com/Eunsol-Lee/algorithmStudyDayByDay/tree/master/day1_GoogleCodeJam2016_QuallificationRound/2016%20Live%20Coding%20using%20CPP%20by%20Eunsol) when I competed last year. It is fun to compare between c++ code and python code. 40 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day1_GoogleCodeJam2016_QuallificationRound/.DS_Store -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/.DS_Store -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/CoinJam.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/CoinJam.cpp -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/CountingSheep.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/CountingSheep.cpp -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/Fractiles.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/Fractiles.cpp -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/RevengeofthePancakes.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day1_GoogleCodeJam2016_QuallificationRound/2016 Live Coding using CPP by Eunsol/RevengeofthePancakes.cpp -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016_QR_A_CountingSheep.py: -------------------------------------------------------------------------------- 1 | def solve(N): 2 | num = [0] * 10; 3 | numCount = 0 4 | if N == 0: 5 | return 'INSOMNIA' 6 | for i in range(1,1000): 7 | p = i * N 8 | while (p): 9 | m = p % 10 10 | if num[m] == 0: 11 | num[m] = 1 12 | numCount += 1 13 | p = int(p / 10) 14 | if numCount == 10: 15 | return str(i * N) 16 | 17 | T = int(input()) 18 | 19 | for i in range(1,T+1): 20 | N = int(input()) 21 | print ('Case #%d: %s' % (i, solve(N))) 22 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016_QR_B_RevengeOfThePancakes.py: -------------------------------------------------------------------------------- 1 | def solve(S): 2 | S += '+' 3 | count = 0 4 | while (len(S)*'+' != S): 5 | count += 1 6 | if S[0] == '-': 7 | index = S.index('+') 8 | S = index * '+' + S[index:] 9 | else: 10 | index = S.index('-') 11 | S = index * '-' + S[index:] 12 | return count 13 | 14 | T = int(input()) 15 | 16 | for i in range(1,T+1): 17 | S = input() 18 | print ('Case #%d: %s' % (i, solve(S))) 19 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016_QR_B_RevengeOfThePancakes_v2.py: -------------------------------------------------------------------------------- 1 | def solve(S): 2 | S += '+' 3 | return S.count('-+')+S.count('+-') 4 | 5 | T = int(input()) 6 | 7 | for i in range(1,T+1): 8 | S = input() 9 | print ('Case #%d: %s' % (i, solve(S))) 10 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016_QR_C_CoinJam.py: -------------------------------------------------------------------------------- 1 | from itertools import combinations_with_replacement 2 | 3 | def solve(N, J): 4 | pairs = 8 5 | zeros = N - 4 - pairs 6 | locations = combinations_with_replacement('01234', zeros) 7 | 8 | count = 0 9 | 10 | for result in locations: 11 | now = 0 12 | string = '' 13 | for i in range(zeros): 14 | while (now != int(result[i])): 15 | string += '11' 16 | now += 1 17 | string += '0' 18 | while (now < pairs / 2): 19 | now += 1 20 | string += '11' 21 | print ('11%s11 3 2 3 2 7 2 3 2 3' % (string)) 22 | count += 1 23 | if (count == J): 24 | return 25 | 26 | T = int(input()) 27 | 28 | for i in range(1,T+1): 29 | (N, J) = map(lambda x: int(x), input().split()) 30 | print ('Case #%d:' % i) 31 | solve(N, J); 32 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/2016_QR_D_Fractiles.py: -------------------------------------------------------------------------------- 1 | T = int(input()) 2 | 3 | def solve(K, C, S): 4 | result = int((K+C-1)/C) 5 | if S < result: 6 | return "IMPOSSIBLE" 7 | else: 8 | now = 0 9 | text = '' 10 | for i in range(result): 11 | num = list(range(now + 1, now + 1 + C)) 12 | num = list(map(lambda x: 1 if x > K else x, num)) 13 | now += C 14 | value = 1 15 | for j in range(C): 16 | value += (num[j]-1)*(K**(C-j-1)) 17 | text += str(value) + ' ' 18 | return text 19 | 20 | for i in range(1, T+1): 21 | (K, C, S) = map(lambda x: int(x), input().split()) 22 | print('Case #%d: %s' % (i, solve(K, C, S))) 23 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/A-large-practice.in: -------------------------------------------------------------------------------- 1 | 100 2 | 0 3 | 1 4 | 2 5 | 11 6 | 1692 7 | 163444 8 | 206929 9 | 459923 10 | 691520 11 | 40 12 | 999993 13 | 612112 14 | 908502 15 | 241453 16 | 926904 17 | 567583 18 | 718525 19 | 994798 20 | 999992 21 | 930033 22 | 25 23 | 1250 24 | 9 25 | 91633 26 | 200917 27 | 5 28 | 7 29 | 4 30 | 999999 31 | 591085 32 | 769864 33 | 71189 34 | 166 35 | 476216 36 | 933652 37 | 609465 38 | 859561 39 | 151411 40 | 58908 41 | 842361 42 | 12500 43 | 323139 44 | 999991 45 | 125 46 | 936133 47 | 51830 48 | 482657 49 | 20 50 | 116539 51 | 34 52 | 864874 53 | 832128 54 | 999995 55 | 369944 56 | 999996 57 | 984828 58 | 8 59 | 316091 60 | 125000 61 | 963821 62 | 3 63 | 900468 64 | 124 65 | 938493 66 | 479210 67 | 594362 68 | 943739 69 | 109175 70 | 210398 71 | 558587 72 | 61739 73 | 1000000 74 | 442303 75 | 838365 76 | 404663 77 | 139873 78 | 999994 79 | 622115 80 | 6665 81 | 200 82 | 434677 83 | 794175 84 | 959320 85 | 446431 86 | 270963 87 | 249267 88 | 328146 89 | 438600 90 | 685319 91 | 790765 92 | 999997 93 | 382063 94 | 521535 95 | 570226 96 | 555254 97 | 365801 98 | 406629 99 | 10 100 | 999998 101 | 6 102 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/A-large-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: INSOMNIA 2 | Case #2: 10 3 | Case #3: 90 4 | Case #4: 110 5 | Case #5: 5076 6 | Case #6: 653776 7 | Case #7: 620787 8 | Case #8: 4139307 9 | Case #9: 2074560 10 | Case #10: 920 11 | Case #11: 9999930 12 | Case #12: 4896896 13 | Case #13: 3634008 14 | Case #14: 724359 15 | Case #15: 2780712 16 | Case #16: 1702749 17 | Case #17: 3592625 18 | Case #18: 4973990 19 | Case #19: 5999952 20 | Case #20: 4650165 21 | Case #21: 900 22 | Case #22: 90000 23 | Case #23: 90 24 | Case #24: 733064 25 | Case #25: 602751 26 | Case #26: 90 27 | Case #27: 70 28 | Case #28: 92 29 | Case #29: 9999990 30 | Case #30: 2364340 31 | Case #31: 2309592 32 | Case #32: 640701 33 | Case #33: 5478 34 | Case #34: 1904864 35 | Case #35: 1867304 36 | Case #36: 2437860 37 | Case #37: 4297805 38 | Case #38: 908466 39 | Case #39: 235632 40 | Case #40: 3369444 41 | Case #41: 900000 42 | Case #42: 2908251 43 | Case #43: 9999910 44 | Case #44: 9000 45 | Case #45: 3744532 46 | Case #46: 207320 47 | Case #47: 1930628 48 | Case #48: 900 49 | Case #49: 349617 50 | Case #50: 918 51 | Case #51: 4324370 52 | Case #52: 4992768 53 | Case #53: 6999965 54 | Case #54: 2589608 55 | Case #55: 5999976 56 | Case #56: 6893796 57 | Case #57: 96 58 | Case #58: 1580455 59 | Case #59: 9000000 60 | Case #60: 4819105 61 | Case #61: 30 62 | Case #62: 4502340 63 | Case #63: 2356 64 | Case #64: 5630958 65 | Case #65: 1437630 66 | Case #66: 1783086 67 | Case #67: 6606173 68 | Case #68: 436700 69 | Case #69: 841592 70 | Case #70: 3910109 71 | Case #71: 308695 72 | Case #72: 9000000 73 | Case #73: 2211515 74 | Case #74: 3353460 75 | Case #75: 2427978 76 | Case #76: 1398730 77 | Case #77: 5999964 78 | Case #78: 3732690 79 | Case #79: 73315 80 | Case #80: 9000 81 | Case #81: 2173385 82 | Case #82: 3176700 83 | Case #83: 2877960 84 | Case #84: 3125017 85 | Case #85: 812889 86 | Case #86: 747801 87 | Case #87: 1640730 88 | Case #88: 2193000 89 | Case #89: 2741276 90 | Case #90: 4744590 91 | Case #91: 9999970 92 | Case #92: 1528252 93 | Case #93: 3129210 94 | Case #94: 2851130 95 | Case #95: 4997286 96 | Case #96: 1097403 97 | Case #97: 1219887 98 | Case #98: 90 99 | Case #99: 7999984 100 | Case #100: 90 101 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/A-small-practice.in: -------------------------------------------------------------------------------- 1 | 100 2 | 0 3 | 1 4 | 2 5 | 11 6 | 165 7 | 8 8 | 89 9 | 79 10 | 4 11 | 200 12 | 54 13 | 50 14 | 49 15 | 22 16 | 12 17 | 25 18 | 68 19 | 5 20 | 166 21 | 85 22 | 184 23 | 179 24 | 34 25 | 29 26 | 129 27 | 189 28 | 113 29 | 152 30 | 104 31 | 137 32 | 42 33 | 84 34 | 158 35 | 9 36 | 81 37 | 163 38 | 124 39 | 161 40 | 39 41 | 181 42 | 131 43 | 6 44 | 139 45 | 123 46 | 171 47 | 80 48 | 100 49 | 24 50 | 59 51 | 101 52 | 19 53 | 144 54 | 71 55 | 21 56 | 37 57 | 176 58 | 188 59 | 173 60 | 162 61 | 103 62 | 7 63 | 40 64 | 88 65 | 125 66 | 67 67 | 53 68 | 97 69 | 44 70 | 51 71 | 147 72 | 10 73 | 186 74 | 114 75 | 154 76 | 3 77 | 16 78 | 82 79 | 142 80 | 170 81 | 74 82 | 196 83 | 109 84 | 63 85 | 140 86 | 86 87 | 132 88 | 33 89 | 83 90 | 116 91 | 195 92 | 23 93 | 43 94 | 90 95 | 117 96 | 143 97 | 28 98 | 20 99 | 193 100 | 102 101 | 47 102 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/A-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: INSOMNIA 2 | Case #2: 10 3 | Case #3: 90 4 | Case #4: 110 5 | Case #5: 2475 6 | Case #6: 96 7 | Case #7: 801 8 | Case #8: 790 9 | Case #9: 92 10 | Case #10: 9000 11 | Case #11: 594 12 | Case #12: 900 13 | Case #13: 490 14 | Case #14: 198 15 | Case #15: 156 16 | Case #16: 900 17 | Case #17: 952 18 | Case #18: 90 19 | Case #19: 5478 20 | Case #20: 680 21 | Case #21: 920 22 | Case #22: 1253 23 | Case #23: 918 24 | Case #24: 203 25 | Case #25: 903 26 | Case #26: 1701 27 | Case #27: 904 28 | Case #28: 912 29 | Case #29: 936 30 | Case #30: 1096 31 | Case #31: 378 32 | Case #32: 924 33 | Case #33: 790 34 | Case #34: 90 35 | Case #35: 729 36 | Case #36: 1304 37 | Case #37: 2356 38 | Case #38: 1127 39 | Case #39: 390 40 | Case #40: 905 41 | Case #41: 1048 42 | Case #42: 90 43 | Case #43: 1390 44 | Case #44: 1107 45 | Case #45: 1197 46 | Case #46: 960 47 | Case #47: 900 48 | Case #48: 456 49 | Case #49: 590 50 | Case #50: 909 51 | Case #51: 190 52 | Case #52: 1296 53 | Case #53: 710 54 | Case #54: 189 55 | Case #55: 370 56 | Case #56: 1936 57 | Case #57: 940 58 | Case #58: 1038 59 | Case #59: 1458 60 | Case #60: 721 61 | Case #61: 70 62 | Case #62: 920 63 | Case #63: 792 64 | Case #64: 9000 65 | Case #65: 469 66 | Case #66: 424 67 | Case #67: 970 68 | Case #68: 396 69 | Case #69: 459 70 | Case #70: 1176 71 | Case #71: 90 72 | Case #72: 930 73 | Case #73: 798 74 | Case #74: 924 75 | Case #75: 30 76 | Case #76: 256 77 | Case #77: 574 78 | Case #78: 1136 79 | Case #79: 1190 80 | Case #80: 518 81 | Case #81: 980 82 | Case #82: 545 83 | Case #83: 504 84 | Case #84: 2380 85 | Case #85: 946 86 | Case #86: 792 87 | Case #87: 330 88 | Case #88: 830 89 | Case #89: 1276 90 | Case #90: 2145 91 | Case #91: 207 92 | Case #92: 301 93 | Case #93: 450 94 | Case #94: 819 95 | Case #95: 1001 96 | Case #96: 476 97 | Case #97: 900 98 | Case #98: 1930 99 | Case #99: 918 100 | Case #100: 470 101 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/B-large-practice.in: -------------------------------------------------------------------------------- 1 | 100 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 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/B-large-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 1 2 | Case #2: 1 3 | Case #3: 2 4 | Case #4: 0 5 | Case #5: 3 6 | Case #6: 0 7 | Case #7: 51 8 | Case #8: 55 9 | Case #9: 36 10 | Case #10: 42 11 | Case #11: 45 12 | Case #12: 49 13 | Case #13: 3 14 | Case #14: 35 15 | Case #15: 50 16 | Case #16: 0 17 | Case #17: 51 18 | Case #18: 47 19 | Case #19: 52 20 | Case #20: 55 21 | Case #21: 2 22 | Case #22: 19 23 | Case #23: 55 24 | Case #24: 100 25 | Case #25: 3 26 | Case #26: 57 27 | Case #27: 1 28 | Case #28: 1 29 | Case #29: 48 30 | Case #30: 52 31 | Case #31: 43 32 | Case #32: 46 33 | Case #33: 14 34 | Case #34: 35 35 | Case #35: 47 36 | Case #36: 61 37 | Case #37: 57 38 | Case #38: 57 39 | Case #39: 42 40 | Case #40: 3 41 | Case #41: 43 42 | Case #42: 2 43 | Case #43: 1 44 | Case #44: 53 45 | Case #45: 51 46 | Case #46: 50 47 | Case #47: 61 48 | Case #48: 59 49 | Case #49: 31 50 | Case #50: 54 51 | Case #51: 53 52 | Case #52: 2 53 | Case #53: 42 54 | Case #54: 53 55 | Case #55: 1 56 | Case #56: 47 57 | Case #57: 51 58 | Case #58: 51 59 | Case #59: 1 60 | Case #60: 53 61 | Case #61: 57 62 | Case #62: 45 63 | Case #63: 2 64 | Case #64: 52 65 | Case #65: 60 66 | Case #66: 99 67 | Case #67: 46 68 | Case #68: 10 69 | Case #69: 2 70 | Case #70: 30 71 | Case #71: 55 72 | Case #72: 20 73 | Case #73: 47 74 | Case #74: 46 75 | Case #75: 27 76 | Case #76: 9 77 | Case #77: 1 78 | Case #78: 16 79 | Case #79: 0 80 | Case #80: 52 81 | Case #81: 54 82 | Case #82: 0 83 | Case #83: 45 84 | Case #84: 52 85 | Case #85: 41 86 | Case #86: 27 87 | Case #87: 55 88 | Case #88: 53 89 | Case #89: 54 90 | Case #90: 53 91 | Case #91: 46 92 | Case #92: 45 93 | Case #93: 49 94 | Case #94: 48 95 | Case #95: 35 96 | Case #96: 28 97 | Case #97: 43 98 | Case #98: 49 99 | Case #99: 8 100 | Case #100: 48 101 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/B-small-practice.in: -------------------------------------------------------------------------------- 1 | 100 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 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/B-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 1 2 | Case #2: 1 3 | Case #3: 2 4 | Case #4: 0 5 | Case #5: 3 6 | Case #6: 4 7 | Case #7: 5 8 | Case #8: 3 9 | Case #9: 7 10 | Case #10: 8 11 | Case #11: 6 12 | Case #12: 0 13 | Case #13: 4 14 | Case #14: 2 15 | Case #15: 3 16 | Case #16: 4 17 | Case #17: 6 18 | Case #18: 2 19 | Case #19: 5 20 | Case #20: 4 21 | Case #21: 2 22 | Case #22: 2 23 | Case #23: 1 24 | Case #24: 1 25 | Case #25: 7 26 | Case #26: 5 27 | Case #27: 2 28 | Case #28: 1 29 | Case #29: 1 30 | Case #30: 6 31 | Case #31: 6 32 | Case #32: 1 33 | Case #33: 1 34 | Case #34: 6 35 | Case #35: 4 36 | Case #36: 3 37 | Case #37: 3 38 | Case #38: 0 39 | Case #39: 3 40 | Case #40: 5 41 | Case #41: 2 42 | Case #42: 5 43 | Case #43: 2 44 | Case #44: 7 45 | Case #45: 1 46 | Case #46: 5 47 | Case #47: 4 48 | Case #48: 2 49 | Case #49: 2 50 | Case #50: 7 51 | Case #51: 3 52 | Case #52: 1 53 | Case #53: 7 54 | Case #54: 5 55 | Case #55: 8 56 | Case #56: 6 57 | Case #57: 2 58 | Case #58: 3 59 | Case #59: 4 60 | Case #60: 0 61 | Case #61: 5 62 | Case #62: 1 63 | Case #63: 10 64 | Case #64: 3 65 | Case #65: 9 66 | Case #66: 0 67 | Case #67: 3 68 | Case #68: 4 69 | Case #69: 3 70 | Case #70: 4 71 | Case #71: 0 72 | Case #72: 4 73 | Case #73: 4 74 | Case #74: 2 75 | Case #75: 3 76 | Case #76: 4 77 | Case #77: 1 78 | Case #78: 7 79 | Case #79: 5 80 | Case #80: 7 81 | Case #81: 6 82 | Case #82: 6 83 | Case #83: 4 84 | Case #84: 5 85 | Case #85: 5 86 | Case #86: 4 87 | Case #87: 6 88 | Case #88: 1 89 | Case #89: 3 90 | Case #90: 5 91 | Case #91: 4 92 | Case #92: 3 93 | Case #93: 2 94 | Case #94: 4 95 | Case #95: 2 96 | Case #96: 4 97 | Case #97: 5 98 | Case #98: 1 99 | Case #99: 8 100 | Case #100: 2 101 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/C-large-practice.in: -------------------------------------------------------------------------------- 1 | 1 2 | 32 500 3 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/C-small-practice.in: -------------------------------------------------------------------------------- 1 | 1 2 | 16 50 3 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/C-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 2 | 1100001111111111 3 2 3 2 7 2 3 2 3 3 | 1100011011111111 3 2 3 2 7 2 3 2 3 4 | 1100011110111111 3 2 3 2 7 2 3 2 3 5 | 1100011111101111 3 2 3 2 7 2 3 2 3 6 | 1100011111111011 3 2 3 2 7 2 3 2 3 7 | 1100110011111111 3 2 3 2 7 2 3 2 3 8 | 1100110110111111 3 2 3 2 7 2 3 2 3 9 | 1100110111101111 3 2 3 2 7 2 3 2 3 10 | 1100110111111011 3 2 3 2 7 2 3 2 3 11 | 1100111100111111 3 2 3 2 7 2 3 2 3 12 | 1100111101101111 3 2 3 2 7 2 3 2 3 13 | 1100111101111011 3 2 3 2 7 2 3 2 3 14 | 1100111111001111 3 2 3 2 7 2 3 2 3 15 | 1100111111011011 3 2 3 2 7 2 3 2 3 16 | 1100111111110011 3 2 3 2 7 2 3 2 3 17 | 1101100011111111 3 2 3 2 7 2 3 2 3 18 | 1101100110111111 3 2 3 2 7 2 3 2 3 19 | 1101100111101111 3 2 3 2 7 2 3 2 3 20 | 1101100111111011 3 2 3 2 7 2 3 2 3 21 | 1101101100111111 3 2 3 2 7 2 3 2 3 22 | 1101101101101111 3 2 3 2 7 2 3 2 3 23 | 1101101101111011 3 2 3 2 7 2 3 2 3 24 | 1101101111001111 3 2 3 2 7 2 3 2 3 25 | 1101101111011011 3 2 3 2 7 2 3 2 3 26 | 1101101111110011 3 2 3 2 7 2 3 2 3 27 | 1101111000111111 3 2 3 2 7 2 3 2 3 28 | 1101111001101111 3 2 3 2 7 2 3 2 3 29 | 1101111001111011 3 2 3 2 7 2 3 2 3 30 | 1101111011001111 3 2 3 2 7 2 3 2 3 31 | 1101111011011011 3 2 3 2 7 2 3 2 3 32 | 1101111011110011 3 2 3 2 7 2 3 2 3 33 | 1101111110001111 3 2 3 2 7 2 3 2 3 34 | 1101111110011011 3 2 3 2 7 2 3 2 3 35 | 1101111110110011 3 2 3 2 7 2 3 2 3 36 | 1101111111100011 3 2 3 2 7 2 3 2 3 37 | 1111000011111111 3 2 3 2 7 2 3 2 3 38 | 1111000110111111 3 2 3 2 7 2 3 2 3 39 | 1111000111101111 3 2 3 2 7 2 3 2 3 40 | 1111000111111011 3 2 3 2 7 2 3 2 3 41 | 1111001100111111 3 2 3 2 7 2 3 2 3 42 | 1111001101101111 3 2 3 2 7 2 3 2 3 43 | 1111001101111011 3 2 3 2 7 2 3 2 3 44 | 1111001111001111 3 2 3 2 7 2 3 2 3 45 | 1111001111011011 3 2 3 2 7 2 3 2 3 46 | 1111001111110011 3 2 3 2 7 2 3 2 3 47 | 1111011000111111 3 2 3 2 7 2 3 2 3 48 | 1111011001101111 3 2 3 2 7 2 3 2 3 49 | 1111011001111011 3 2 3 2 7 2 3 2 3 50 | 1111011011001111 3 2 3 2 7 2 3 2 3 51 | 1111011011011011 3 2 3 2 7 2 3 2 3 52 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/D-large-practice.in: -------------------------------------------------------------------------------- 1 | 100 2 | 2 3 2 3 | 1 1 1 4 | 2 1 1 5 | 2 1 2 6 | 3 2 3 7 | 4 2 2 8 | 97 7 95 9 | 1 91 1 10 | 42 6 26 11 | 100 1 100 12 | 100 3 33 13 | 1 43 1 14 | 14 7 2 15 | 4 1 3 16 | 100 4 9 17 | 3 4 1 18 | 1 64 1 19 | 1 3 1 20 | 100 1 1 21 | 4 29 1 22 | 1 4 1 23 | 25 2 16 24 | 2 3 1 25 | 2 2 1 26 | 81 6 8 27 | 97 6 73 28 | 80 8 9 29 | 2 44 1 30 | 55 4 43 31 | 60 3 47 32 | 28 12 3 33 | 3 2 2 34 | 2 4 1 35 | 3 29 1 36 | 84 9 27 37 | 80 3 68 38 | 1 2 1 39 | 1 25 1 40 | 92 5 29 41 | 100 3 34 42 | 2 59 1 43 | 1 79 1 44 | 1 81 1 45 | 1 62 1 46 | 100 2 49 47 | 100 4 25 48 | 4 1 4 49 | 68 2 32 50 | 1 85 1 51 | 10 18 1 52 | 28 12 2 53 | 49 2 17 54 | 100 1 99 55 | 4 3 1 56 | 81 9 9 57 | 10 5 2 58 | 61 5 2 59 | 28 1 27 60 | 100 2 50 61 | 14 15 10 62 | 100 4 24 63 | 100 9 12 64 | 29 11 28 65 | 3 2 1 66 | 23 8 6 67 | 7 12 4 68 | 80 1 64 69 | 36 1 15 70 | 1 11 1 71 | 81 1 81 72 | 3 37 1 73 | 32 11 31 74 | 30 4 23 75 | 1 100 1 76 | 36 9 18 77 | 28 1 28 78 | 10 5 1 79 | 3 3 1 80 | 37 8 34 81 | 4 4 1 82 | 73 6 32 83 | 14 7 1 84 | 81 1 80 85 | 3 1 3 86 | 81 9 8 87 | 100 9 11 88 | 10 12 6 89 | 53 8 17 90 | 80 8 10 91 | 4 3 2 92 | 4 2 1 93 | 8 16 8 94 | 7 7 2 95 | 1 19 1 96 | 65 6 35 97 | 30 8 10 98 | 83 9 36 99 | 3 35 1 100 | 9 2 1 101 | 3 1 2 102 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/D-large-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 3 2 | Case #2: 1 3 | Case #3: IMPOSSIBLE 4 | Case #4: 1 2 5 | Case #5: 2 7 6 | Case #6: 2 12 7 | Case #7: 8767174966 5900308751495 11791850328024 17683391904553 23574933481082 29466475057611 35358016634140 41249558210669 47141099787198 53032641363727 58924182940256 64815724516785 70707266093314 76598807669746 8 | Case #8: 1 9 | Case #9: 3265338 806538276 1609811214 2413084152 3216357090 4019630028 4822902966 10 | Case #10: 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 11 | Case #11: IMPOSSIBLE 12 | Case #12: 1 13 | Case #13: 623749 57384866 14 | Case #14: IMPOSSIBLE 15 | Case #15: IMPOSSIBLE 16 | Case #16: 16 17 | Case #17: 1 18 | Case #18: 1 19 | Case #19: IMPOSSIBLE 20 | Case #20: 30399297484750849 21 | Case #21: 1 22 | Case #22: 2 54 106 158 210 262 314 366 418 470 522 574 601 23 | Case #23: 3 24 | Case #24: 2 25 | Case #25: IMPOSSIBLE 26 | Case #26: 90383248 52151133556 104211883864 156272634172 208333384480 260394134788 312454885096 364515635404 416576385712 468637136020 520697886328 572758636636 624819386944 676880137252 728940887560 781001637868 824384664673 27 | Case #27: IMPOSSIBLE 28 | Case #28: 4398046511105 29 | Case #29: 3139 680963 1358787 2036611 2714435 3392259 4070083 4747907 5425731 6103555 6781379 7459203 8137027 8814796 30 | Case #30: 63 11046 22029 33012 43995 54978 65961 76944 87927 98910 109893 120876 131859 142842 153825 164808 175791 186774 197757 208740 31 | Case #31: 318543573510580 103526661390938320 206734386895454209 32 | Case #32: 2 7 33 | Case #33: 5 34 | Case #34: 12709329141646 35 | Case #35: 30224379232245 22607835665718594 45185446952204943 67763058238691292 90340669525177641 112918280811663990 135495892098150339 158073503384636688 180651114671123037 203228370376077313 36 | Case #36: 83 19526 38969 58412 77855 97298 116741 136184 155627 175070 194513 213956 233399 252842 272285 291728 311171 330614 350057 369500 388943 408386 427829 447272 466715 486158 505521 37 | Case #37: 1 38 | Case #38: 1 39 | Case #39: 795897 362928602 725061307 1087194012 1449326717 1811459422 2173592127 2535724832 2897857537 3259990242 3622122947 3984255652 4346388357 4708521062 5070653767 5432786472 5794919177 6157051882 6518397249 40 | Case #40: 103 30406 60709 91012 121315 151618 181921 212224 242527 272830 303133 333436 363739 394042 424345 454648 484951 515254 545557 575860 606163 636466 666769 697072 727375 757678 787981 818284 848587 878890 909193 939496 969799 990001 41 | Case #41: 144115188075855873 42 | Case #42: 1 43 | Case #43: 1 44 | Case #44: 1 45 | Case #45: IMPOSSIBLE 46 | Case #46: 10204 4050608 8091012 12131416 16171820 20212224 24252628 28293032 32333436 36373840 40414244 44454648 48495052 52535456 56575860 60616264 64656668 68697072 72737476 76777880 80818284 84858688 88899092 92939496 96979900 47 | Case #47: 1 2 3 4 48 | Case #48: IMPOSSIBLE 49 | Case #49: 1 50 | Case #50: 12345678900000001 51 | Case #51: IMPOSSIBLE 52 | Case #52: IMPOSSIBLE 53 | Case #53: IMPOSSIBLE 54 | Case #54: IMPOSSIBLE 55 | Case #55: 23452286765157 16909098757677558 33794745228589959 50680391699502360 67566038170414761 84451684641327162 101337331112239563 118222977583151964 135108624054064365 56 | Case #56: 1235 56790 57 | Case #57: IMPOSSIBLE 58 | Case #58: IMPOSSIBLE 59 | Case #59: 2 204 406 608 810 1012 1214 1416 1618 1820 2022 2224 2426 2628 2830 3032 3234 3436 3638 3840 4042 4244 4446 4648 4850 5052 5254 5456 5658 5860 6062 6264 6466 6668 6870 7072 7274 7476 7678 7880 8082 8284 8486 8688 8890 9092 9294 9496 9698 9900 60 | Case #60: 920521275489999 61 | Case #61: IMPOSSIBLE 62 | Case #62: 102030405060709 91011121314151618 181920212223242527 272829303132333436 363738394041424345 454647484950515254 545556575859606163 636465666768697072 727374757677787981 818283848586878890 909192939495969799 990000000000000001 63 | Case #63: 15561874701156 4808619282657017 9601676689879436 64 | Case #64: IMPOSSIBLE 65 | Case #65: 161799557 28638521477 57115243374 66 | Case #66: 384460126 67 | Case #67: IMPOSSIBLE 68 | Case #68: IMPOSSIBLE 69 | Case #69: 1 70 | Case #70: 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 71 | Case #71: 83385908498332846 72 | Case #72: 37490943828267 12821902789267094 25606314634705889 73 | Case #73: 964 112688 224412 336136 447860 559584 671308 782101 74 | Case #74: 1 75 | Case #75: 82906087077 26198323516098 52313740945119 78429158374140 76 | Case #76: 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 77 | Case #77: IMPOSSIBLE 78 | Case #78: 6 79 | Case #79: 2710246493 783261236253 1563812226013 2344363215773 3124914153435 80 | Case #80: 28 81 | Case #81: 29192560 12640378084 25251563608 37862749132 50473934656 63085120180 75696305704 88307491228 100918676752 113529862276 126141047800 138752233324 149261154697 82 | Case #82: IMPOSSIBLE 83 | Case #83: IMPOSSIBLE 84 | Case #84: 1 2 3 85 | Case #85: IMPOSSIBLE 86 | Case #86: IMPOSSIBLE 87 | Case #87: 12345678901 88 | Case #88: 23025033437 9601438942877 19179852852317 28758266761757 38336680671197 47915094580637 57493508338283 89 | Case #89: 268822560488 170164680788336 340060539016184 509956397244032 679852255471880 849748113699728 1019643971927576 1189539830155424 1359435688383272 1529331546611120 90 | Case #90: 7 49 91 | Case #91: IMPOSSIBLE 92 | Case #92: 5744367763457 93 | Case #93: 22876 94 | Case #94: 1 95 | Case #95: 18412816 7088933812 14159454808 21229975804 28300496800 35371017796 42441538792 49512059788 56582580784 63653101780 70723622711 96 | Case #96: 780142688 181773246136 362766349584 543759452101 97 | Case #97: 27801941592437 20545634836810286 41063467732028135 61581300627245984 82099133522463833 102616966417681682 123134799312899531 143652632208117380 164170465103335229 184660826984411736 98 | Case #98: 9265100944259206 99 | Case #99: IMPOSSIBLE 100 | Case #100: IMPOSSIBLE 101 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/D-small-practice.in: -------------------------------------------------------------------------------- 1 | 100 2 | 2 3 2 3 | 1 1 1 4 | 2 1 2 5 | 3 2 3 6 | 80 8 80 7 | 6 22 6 8 | 81 1 81 9 | 20 13 20 10 | 1 17 1 11 | 4 2 4 12 | 12 13 12 13 | 20 10 20 14 | 63 3 63 15 | 74 9 74 16 | 95 6 95 17 | 51 3 51 18 | 11 15 11 19 | 4 1 4 20 | 94 3 94 21 | 49 5 49 22 | 63 6 63 23 | 37 1 37 24 | 56 1 56 25 | 6 17 6 26 | 100 4 100 27 | 47 5 47 28 | 94 8 94 29 | 1 64 1 30 | 4 3 4 31 | 28 8 28 32 | 20 9 20 33 | 1 4 1 34 | 17 10 17 35 | 3 3 3 36 | 2 49 2 37 | 80 6 80 38 | 68 5 68 39 | 4 29 4 40 | 8 1 8 41 | 68 9 68 42 | 10 5 10 43 | 45 4 45 44 | 1 6 1 45 | 1 12 1 46 | 89 5 89 47 | 100 9 100 48 | 14 7 14 49 | 2 2 2 50 | 29 2 29 51 | 5 10 5 52 | 3 37 3 53 | 50 7 50 54 | 68 1 68 55 | 87 4 87 56 | 27 10 27 57 | 3 1 3 58 | 100 2 100 59 | 2 59 2 60 | 43 4 43 61 | 46 9 46 62 | 9 2 9 63 | 22 11 22 64 | 3 19 3 65 | 1 3 1 66 | 97 9 97 67 | 1 91 1 68 | 13 12 13 69 | 19 10 19 70 | 4 4 4 71 | 1 78 1 72 | 33 1 33 73 | 100 1 100 74 | 10 18 10 75 | 38 7 38 76 | 92 2 92 77 | 30 12 30 78 | 65 2 65 79 | 38 4 38 80 | 1 100 1 81 | 3 34 3 82 | 28 12 28 83 | 78 3 78 84 | 49 9 49 85 | 56 7 56 86 | 43 7 43 87 | 51 8 51 88 | 30 5 30 89 | 17 11 17 90 | 45 2 45 91 | 26 1 26 92 | 95 5 95 93 | 87 1 87 94 | 100 3 100 95 | 12 12 12 96 | 20 1 20 97 | 1 2 1 98 | 52 10 52 99 | 2 4 2 100 | 73 7 73 101 | 3 4 3 102 | -------------------------------------------------------------------------------- /day1_GoogleCodeJam2016_QuallificationRound/D-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 3 2 | Case #2: 1 3 | Case #3: 1 2 4 | Case #4: 2 7 5 | Case #5: 268822560488 170164680788336 340060539016184 509956397244032 679852255471880 849748113699728 1019643971927576 1189539830155424 1359435688383272 1529331546611120 6 | Case #6: 5261369977405441 7 | Case #7: 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 8 | Case #8: 226925207756233 56277451456000001 9 | Case #9: 1 10 | Case #10: 2 12 11 | Case #11: 884241366757 12 | Case #12: 28365650970 5417839335180 13 | Case #13: 66 12165 24264 36363 48462 60561 72660 84759 96858 108957 121056 133155 145254 157353 169452 181551 193650 205749 217848 229947 242046 14 | Case #14: 12486472279055 8216098759617614 16419711046956173 24623323334294732 32826935621633291 41030547908971850 49234160196310409 57437772483648968 65629064754602625 15 | Case #15: 83192836 47003951812 93924710788 140845469764 187766228740 234686987716 281607746692 328528505668 375449264644 422370023620 469290782596 516211541572 563132300548 610053059524 656973818500 703894577381 16 | Case #16: 54 8013 15972 23931 31890 39849 47808 55767 63726 71685 79644 87603 95562 103521 111480 119439 127398 17 | Case #17: 41772481677906 18 | Case #18: 1 2 3 4 19 | Case #19: 97 26890 53683 80476 107269 134062 160855 187648 214441 241234 268027 294820 321613 348406 375199 401992 428785 455578 482371 509164 535957 562750 589543 616336 643129 669922 696715 723508 750301 777094 803887 821749 20 | Case #20: 122603 29547108 58971613 88396118 117820623 147245128 176669633 206094138 235518643 264943099 21 | Case #21: 16265220 6066926724 12117588228 18168249732 24218911236 30269572740 36320234244 42370895748 48421557252 54472218756 60522626116 22 | Case #22: 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 23 | Case #23: 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 24 | Case #24: 676616509441 25 | Case #25: 10204 4050608 8091012 12131416 16171820 20212224 24252628 28293032 32333436 36373840 40414244 44454648 48495052 52535456 56575860 60616264 64656668 68697072 72737476 76777880 80818284 84858688 88899092 92939496 96979900 26 | Case #26: 108387 25037192 49965997 74894802 99823607 124752412 149681217 174610022 199538827 224361504 27 | Case #27: 704785453280 525065162692920 1049425539932560 1573785917172200 2098146294411840 2622506671651480 3146867048891120 3671227426130760 4195587803370400 4719948180610040 5244308557849680 5768668935080389 28 | Case #28: 1 29 | Case #29: 7 49 30 | Case #30: 518246912 112459579752 224400912592 336341607169 31 | Case #31: 1418282549 243944598338 485120000001 32 | Case #32: 1 33 | Case #33: 7874976174 1267871158716 34 | Case #34: 6 35 | Case #35: 140737488355329 36 | Case #36: 42003526 19951674412 39861345298 59771016184 79680687070 99590357956 119500028842 139409699728 159319370614 179229041500 199138712386 219048383272 238958054158 258826240001 37 | Case #37: 323889 108826394 217328899 325831404 434333909 542836414 651338919 759841424 868343929 976846434 1085348939 1193851444 1302353949 1410851761 38 | Case #38: 30399297484750849 39 | Case #39: 1 2 3 4 5 6 7 8 40 | Case #40: 6925172710277 4182804317006786 8358683461303295 12534562605599804 16710441749896313 20886320894192822 25062200038489331 29238079161080577 41 | Case #41: 1235 56790 42 | Case #42: 2119 374903 747687 1120471 1493255 1866039 2238823 2611607 2984391 3357175 3729959 4009501 43 | Case #43: 1 44 | Case #44: 1 45 | Case #45: 721083 317997188 635273293 952549398 1269825503 1587101608 1904377713 2221653818 2538929923 2856206028 3173482133 3490758238 3808034343 4125310448 4442586553 4759862658 5077138763 5394414779 46 | Case #46: 102030405060709 91011121314151618 181920212223242527 272829303132333436 363738394041424345 454647484950515254 545556575859606163 636465666768697072 727374757677787981 818283848586878890 909192939495969799 990000000000000001 47 | Case #47: 623749 57384866 48 | Case #48: 2 49 | Case #49: 2 62 122 182 242 302 362 422 482 542 602 662 722 782 813 50 | Case #50: 606251 51 | Case #51: 83385908498332846 52 | Case #52: 325385257 111932528114 223539670971 335146813828 446753956685 558361099542 669968242399 765625000001 53 | Case #53: 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 54 | Case #54: 7747 2672387 5337027 8001667 10666307 13330947 15995587 18660227 21324867 23989507 26654147 29318787 31983427 34648067 37312707 39977347 42641987 45306627 47971267 50635907 53300547 55965100 55 | Case #55: 304572680614 79493469640094 158682366579106 56 | Case #56: 1 2 3 57 | Case #57: 2 204 406 608 810 1012 1214 1416 1618 1820 2022 2224 2426 2628 2830 3032 3234 3436 3638 3840 4042 4244 4446 4648 4850 5052 5254 5456 5658 5860 6062 6264 6466 6668 6870 7072 7274 7476 7678 7880 8082 8284 8486 8688 8890 9092 9294 9496 9698 9900 58 | Case #58: 144115188075855873 59 | Case #59: 1939 327539 653139 978739 1304339 1629939 1955539 2281139 2606739 2932339 3257896 60 | Case #60: 455402549467 184893435083278 369331467617089 553769500150900 738207532684711 902142550437121 61 | Case #61: 2 22 42 62 73 62 | Case #62: 1324984810457 307396476025914 63 | Case #63: 215233606 64 | Case #64: 1 65 | Case #65: 82490349246373 71354152098111862 142625813846977351 213897475595842840 285169137344708329 356440799093573818 427712460842439307 498984122591304796 570255784340170285 641527446089035774 712799107837891756 66 | Case #66: 1 67 | Case #67: 161792257795 21505924728445 68 | Case #68: 18923044006 3425070964987 69 | Case #69: 28 70 | Case #70: 1 71 | Case #71: 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 72 | Case #72: 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 73 | Case #73: 12345678900000001 74 | Case #74: 83576029 21729767330 43375958631 65022149932 86668341233 108312389521 75 | Case #75: 2 188 374 560 746 932 1118 1304 1490 1676 1862 2048 2234 2420 2606 2792 2978 3164 3350 3536 3722 3908 4094 4280 4466 4652 4838 5024 5210 5396 5582 5768 5954 6140 6326 6512 6698 6884 7070 7256 7442 7628 7814 8000 8186 8372 76 | Case #76: 631915576694412 220538536266349584 440445156201000001 77 | Case #77: 2 134 266 398 530 662 794 926 1058 1190 1322 1454 1586 1718 1850 1982 2114 2246 2378 2510 2642 2774 2906 3038 3170 3302 3434 3566 3698 3830 3962 4094 4161 78 | Case #78: 1524 226944 452364 677784 903204 1128624 1354044 1579464 1804884 2028821 79 | Case #79: 1 80 | Case #80: 3088366981419736 81 | Case #81: 318543573510580 103526661390938320 206734386895454209 82 | Case #82: 81 18570 37059 55548 74037 92526 111015 129504 147993 166482 184971 203460 221949 240438 258927 277416 295905 314394 332883 351372 369861 388350 406839 425328 443817 462306 83 | Case #83: 706776735205 306034326343414 611361875951623 916689425559832 1222016975168041 1527344236293499 84 | Case #84: 570940447 220383012206 440195083965 660007155724 879819227483 1099631299242 1319443371001 1539255442760 85 | Case #85: 154092184 45457194035 90760295886 136063397737 181366499588 226669601439 265497248059 86 | Case #86: 18307177829 7341178309093 14664049440357 21986920571621 29309791702885 36632662834149 43955181901648 87 | Case #87: 28895 4218550 8408205 12597860 16787515 20977170 88 | Case #88: 133874594952 23695801792306 89 | Case #89: 2 94 186 278 370 462 554 646 738 830 922 1014 1106 1198 1290 1382 1474 1566 1658 1750 1842 1934 1981 90 | Case #90: 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 91 | Case #91: 875715 412461320 824046925 1235632530 1647218135 2058803740 2470389345 2881974950 3293560555 3705146160 4116731765 4528317370 4939902975 5351488580 5763074185 6174659790 6586245395 6997831000 7409416605 92 | Case #92: 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 93 | Case #93: 103 30406 60709 91012 121315 151618 181921 212224 242527 272830 303133 333436 363739 394042 424345 454648 484951 515254 545557 575860 606163 636466 666769 697072 727375 757678 787981 818284 848587 878890 909193 939496 969799 990001 94 | Case #94: 73686780564 95 | Case #95: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 96 | Case #96: 1 97 | Case #97: 55576742002714 28399715163386444 56743853584770174 85087992006153904 113432130427537634 141721740336889857 98 | Case #98: 5 99 | Case #99: 2131056814 1076183690615 2150236324416 3224288958217 4298341592018 5372394225819 6446446859620 7520499493421 8594552127222 9668604761023 10742628596686 100 | Case #100: 16 101 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day2_GoogleCodeJam2016_Round1A/.DS_Store -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/2016 Live Coding using CPP by Eunsol/BFFs.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #define _USE_MATH_DEFINES 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #define forn(i, N) for(int i = 0; i < N; i ++) 10 | 11 | using namespace std; 12 | 13 | void solve() { 14 | int N; 15 | int F[1001]; 16 | int seed[1001] = { 0 }; 17 | int distance[1001] = { 0 }; 18 | int result = 0; 19 | int seedcount = 0; 20 | cin >> N; 21 | forn(i, N) { 22 | cin >> F[i]; 23 | } 24 | 25 | forn(i, N) { 26 | if (F[F[i] - 1] == i + 1) { 27 | seed[i] = 1; 28 | } 29 | } 30 | 31 | forn(i, N) { 32 | if (!distance[i] && !seed[i]) { 33 | int now = i; 34 | int count = 1; 35 | forn(j, N) { 36 | distance[now] = count; 37 | now = F[now] - 1; 38 | if (seed[now]) { 39 | distance[now] = max(distance[now], count); 40 | break; 41 | } 42 | count++; 43 | } 44 | } 45 | } 46 | forn(i, N) { 47 | if (seed[i]) { 48 | seedcount += 1 + distance[i]; 49 | } 50 | } 51 | 52 | 53 | forn(i, N) { 54 | int now, count = 1; 55 | now = i + 1; 56 | forn(j, N) { 57 | count++; 58 | now = F[now - 1]; 59 | if (now == i + 1) { 60 | result = max(result, count - 1); 61 | break; 62 | } 63 | } 64 | } 65 | 66 | cout << max(result, seedcount) << endl; 67 | } 68 | 69 | int main() 70 | { 71 | int T; 72 | cin >> T; 73 | 74 | forn(t, T) { 75 | 76 | cout << "Case #" << t + 1 << ": "; 77 | 78 | solve(); 79 | } 80 | 81 | return 0; 82 | } 83 | 84 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/2016 Live Coding using CPP by Eunsol/RankandFile.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #define _USE_MATH_DEFINES 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #define forn(i, N) for(int i = 0; i < N; i ++) 10 | 11 | using namespace std; 12 | 13 | void solve() { 14 | int N; 15 | int number[5000]; 16 | int an = 0; 17 | int count = 0; 18 | int now; 19 | cin >> N; 20 | forn(i, 2 * N - 1) { 21 | forn(j, N) { 22 | cin >> number[an++]; 23 | } 24 | } 25 | sort(number, number + an); 26 | number[an] = number[an - 1] + 1; 27 | now = number[0]; 28 | count = 1; 29 | for (int i = 1; i <= an; i++) { 30 | if (number[i] != now) { 31 | if (count % 2 == 1) { 32 | cout << now << " "; 33 | } 34 | now = number[i]; 35 | 36 | count = 1; 37 | } 38 | else 39 | { 40 | count++; 41 | } 42 | } 43 | cout << endl; 44 | } 45 | 46 | int main() 47 | { 48 | int T; 49 | cin >> T; 50 | 51 | forn(t, T) { 52 | 53 | cout << "Case #" << t + 1 << ": "; 54 | 55 | solve(); 56 | } 57 | 58 | return 0; 59 | } 60 | 61 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/2016 Live Coding using CPP by Eunsol/TheLastWord.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #define _USE_MATH_DEFINES 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #define forn(i, N) for(int i = 0; i < N; i ++) 11 | 12 | using namespace std; 13 | 14 | void solve() { 15 | string S; 16 | string target; 17 | cin >> S; 18 | for (char& s : S) { 19 | if (s >= target[0]) { 20 | target = s + target; 21 | } 22 | else { 23 | target = target + s; 24 | } 25 | } 26 | cout << target << endl; 27 | } 28 | 29 | int main() 30 | { 31 | int T; 32 | cin >> T; 33 | 34 | forn(t, T) { 35 | 36 | cout << "Case #" << t + 1 << ": "; 37 | 38 | solve(); 39 | } 40 | 41 | return 0; 42 | } 43 | 44 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/2016_R1A_A_TheLastWord.py: -------------------------------------------------------------------------------- 1 | def solve(S): 2 | now = '' 3 | result = '' 4 | for x in S: 5 | if now <= x: 6 | result = x + result 7 | now = x 8 | else: 9 | result = result + x 10 | return result 11 | 12 | T = int(input()) 13 | 14 | for i in range(1, T+1): 15 | S = input() 16 | print('Case #%d: %s' % (i, solve(S))) 17 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/2016_R1A_B-RankAndFile.py: -------------------------------------------------------------------------------- 1 | def solve(N, List): 2 | List.append(2501) 3 | count = 0 4 | now = 0 5 | result = '' 6 | for x in List: 7 | if now != x: 8 | if count % 2 == 1: 9 | result += str(now) + ' ' 10 | count = 1 11 | now = x 12 | else: 13 | count += 1 14 | return result 15 | 16 | T = int(input()) 17 | 18 | for i in range(1, T+1): 19 | N = int(input()) 20 | List = [0] * N * (N*2-1) 21 | for j in range(N*2-1): 22 | inp = [int(x) for x in input().split()] 23 | for k in range(N): 24 | List[j*N-N+k]=inp[k] 25 | print ('Case #%d: %s' % (i, solve(N, sorted(List)))) 26 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/2016_R1A_C-BFFs.py: -------------------------------------------------------------------------------- 1 | def solve(N, F): 2 | m = 0 3 | circle = [0] * N 4 | linear = [0] * N 5 | linearFinal = [0] * N 6 | linearCount = 0 7 | for i in range(N): 8 | now = i 9 | count = 0 10 | visited = [0] * N 11 | visited[now] = 1 12 | while True: 13 | count += 1 14 | visited[now] = count 15 | now = F[now] 16 | if visited[now]: 17 | if now == i: 18 | circle[i] = count 19 | else: 20 | linear[i] = visited[now]-1 21 | linearFinal[i] = now 22 | break; 23 | for i in range(N): 24 | m = max(m, circle[i]) 25 | if circle[i] == 2: 26 | l = 0 27 | r = 0 28 | for j in range(N): 29 | if linearFinal[j] == i: 30 | l = max(l, linear[j]) 31 | if linearFinal[j] == F[i]: 32 | r = max(r, linear[j]) 33 | linearCount += l + r + 2 34 | 35 | 36 | return max(m, linearCount/2) 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | T = int(input()) 45 | 46 | for i in range(1, T+1): 47 | N = int(input()) 48 | F = [int(x)-1 for x in input().split()] 49 | print ('Case #%d: %d' % (i, solve(N, F))) 50 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/A-small-practice.in: -------------------------------------------------------------------------------- 1 | 100 2 | CAB 3 | JAM 4 | CODE 5 | ABAAB 6 | CABCBBABC 7 | ABCABCABC 8 | ZXCASDQWE 9 | ABA 10 | BACBACAAACBCB 11 | AMKIHGFDCBAMEJL 12 | ABAA 13 | VQMZKSGQMDBNRKB 14 | OMNCKJIHGFADLBE 15 | CBBBACABACAABCA 16 | BBCBBCBACCAAACA 17 | ABCFLAMKJIHGEDM 18 | CBBACBCBBCBBCCB 19 | ACB 20 | A 21 | AAACAACBBBABCBA 22 | BAAA 23 | AAAAABBCBBBCCCC 24 | OMNLGJIKHFEDCBA 25 | AAAAAAAAAABBC 26 | BCBACABCCBBBC 27 | BBBBBAAAACCCCAC 28 | ACDEFGHMALKJIBM 29 | ABCDEFGHOJKIMNL 30 | ZDABC 31 | AAAB 32 | CCCCCBCACABCCBB 33 | ABAABABAABAAB 34 | CABBBBAACABCCAC 35 | FNNKSWWJLPDRFLY 36 | KPYYJDWBFLHYNJP 37 | HJCDEKOAFBLIMNG 38 | BAC 39 | AAAAAACBCCBBABB 40 | ACBFEGMDIJKNHLO 41 | ZDCBA 42 | ABC 43 | BBACCCAAABBBBAA 44 | ABRACADABRA 45 | BCBAAACBBABABCB 46 | ABCDEZYXWU 47 | ABBCAABCBACCBBC 48 | CABAACCACBCABBC 49 | BCCCBBAAABBBACC 50 | BB 51 | BBBBBAAAAACCCCC 52 | BBA 53 | DQXHVBTMWQVZNVL 54 | BCEGHJAMLKIFDMA 55 | CCCCCBBBBBAAAAA 56 | ZACBA 57 | OMKLBEIHGCJDFNA 58 | AA 59 | AMKJGEMABCDFHIL 60 | AAB 61 | BBBBBCCCCCAAAAA 62 | AAABAABBAABCD 63 | BABBABAACCAAB 64 | ABB 65 | ABABCABCAABBBBA 66 | CBA 67 | BBB 68 | NACKHBDEIJGLMFO 69 | MLJIHFAMBCDEGKA 70 | BABBCCBCABDAA 71 | CBCCCBAABCAAABA 72 | BCBCAAABBACBCCB 73 | AAABCCACAAABC 74 | ZAAAA 75 | BONLJGHICFEMDKA 76 | AAA 77 | BABBABABABAAAAA 78 | BABBAAABCCDBCC 79 | CCCCCBBBBAABAAA 80 | ZADBC 81 | CABACBCBBBCCBCA 82 | CACCCBAABBCBABB 83 | BBBABBAAAACCCCC 84 | AZBYCXDWEU 85 | AABA 86 | BCA 87 | BBACBACCCDDCD 88 | AAAAABBBBBCCCCC 89 | BAB 90 | BAA 91 | BA 92 | ZAYBXCWDUE 93 | OGHINJLMKFEDCAB 94 | Z 95 | ZABCD 96 | AB 97 | BQZJPGTVZHJBSPH 98 | CBABCCAABACACCB 99 | AABACBCABCCCD 100 | ABCIEGFHJDKMLNO 101 | CACACACACBAABBB 102 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/A-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: CAB 2 | Case #2: MJA 3 | Case #3: OCDE 4 | Case #4: BBAAA 5 | Case #5: CCCABBBAB 6 | Case #6: CCCBAABAB 7 | Case #7: ZXCASDQWE 8 | Case #8: BAA 9 | Case #9: CCCCBABAAAABB 10 | Case #10: MMAKIHGFDCBAEJL 11 | Case #11: BAAA 12 | Case #12: ZVQMKSGQMDBNRKB 13 | Case #13: OMNCKJIHGFADLBE 14 | Case #14: CCCCBBBAABAAABA 15 | Case #15: CCCCCBBBBBAAAAA 16 | Case #16: MMLFCBAAKJIHGED 17 | Case #17: CCCCCCBBABBBBBB 18 | Case #18: CAB 19 | Case #19: A 20 | Case #20: CCCAAAAABBBABBA 21 | Case #21: BAAA 22 | Case #22: CCCCCBBAAAAABBB 23 | Case #23: OMNLGJIKHFEDCBA 24 | Case #24: CBBAAAAAAAAAA 25 | Case #25: CCCCCBBAABBBB 26 | Case #26: CCCCCBBBBBAAAAA 27 | Case #27: MMHGFEDCAALKJIB 28 | Case #28: OHGFEDCBAJKIMNL 29 | Case #29: ZDABC 30 | Case #30: BAAA 31 | Case #31: CCCCCCCCCBAABBB 32 | Case #32: BBBBBAAAAAAAA 33 | Case #33: CCCCCABBBBAAABA 34 | Case #34: YWWSNNFKJLPDRFL 35 | Case #35: YYYPKJDWBFLHNJP 36 | Case #36: OKJHCDEAFBLIMNG 37 | Case #37: CBA 38 | Case #38: CCCAAAAAABBBABB 39 | Case #39: ONMGFCABEDIJKHL 40 | Case #40: ZDCBA 41 | Case #41: CBA 42 | Case #42: CCCBBAAAABBBBAA 43 | Case #43: RRBAACADABA 44 | Case #44: CCCBBAAABBABABB 45 | Case #45: ZEDCBAYXWU 46 | Case #46: CCCCCBBAAABBABB 47 | Case #47: CCCCCCABAAABABB 48 | Case #48: CCCCCBBBAAABBBA 49 | Case #49: BB 50 | Case #50: CCCCCBBBBBAAAAA 51 | Case #51: BBA 52 | Case #52: ZXQDHVBTMWQVNVL 53 | Case #53: MMJHGECBALKIFDA 54 | Case #54: CCCCCBBBBBAAAAA 55 | Case #55: ZACBA 56 | Case #56: OMKLBEIHGCJDFNA 57 | Case #57: AA 58 | Case #58: MMAKJGEABCDFHIL 59 | Case #59: BAA 60 | Case #60: CCCCCBBBBBAAAAA 61 | Case #61: DCBBBBAAAAAAA 62 | Case #62: CCBBBBAAAAAAB 63 | Case #63: BBA 64 | Case #64: CCBBAAABAABBBBA 65 | Case #65: CBA 66 | Case #66: BBB 67 | Case #67: ONACKHBDEIJGLMF 68 | Case #68: MMLJIHFABCDEGKA 69 | Case #69: DCCCBBBABABAA 70 | Case #70: CCCCCBBAABAAABA 71 | Case #71: CCCCCBBAAABBABB 72 | Case #72: CCCCBAAAAAAAB 73 | Case #73: ZAAAA 74 | Case #74: OBNLJGHICFEMDKA 75 | Case #75: AAA 76 | Case #76: BBBBBBAAAAAAAAA 77 | Case #77: DCCBBBBAAAABCC 78 | Case #78: CCCCCBBBBAABAAA 79 | Case #79: ZADBC 80 | Case #80: CCCCCCABABBBBBA 81 | Case #81: CCCCCABAABBBABB 82 | Case #82: CCCCCBBBBBAAAAA 83 | Case #83: ZABYCXDWEU 84 | Case #84: BAAA 85 | Case #85: CBA 86 | Case #86: DDDCCCCBBABAC 87 | Case #87: CCCCCBBBBBAAAAA 88 | Case #88: BBA 89 | Case #89: BAA 90 | Case #90: BA 91 | Case #91: ZAYBXCWDUE 92 | Case #92: OGHINJLMKFEDCAB 93 | Case #93: Z 94 | Case #94: ZABCD 95 | Case #95: BA 96 | Case #96: ZZQBJPGTVHJBSPH 97 | Case #97: CCCCCCBABAABAAB 98 | Case #98: DCCCCCBAAABAB 99 | Case #99: ONMKJICBAEGFHDL 100 | Case #100: CCCCCAAAABAABBB 101 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/B-large-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 3 4 6 2 | Case #2: 13 15 23 26 28 32 33 37 38 42 3 | Case #3: 16 39 61 82 102 121 139 156 172 187 201 214 226 237 247 256 257 258 259 260 261 262 263 264 332 4 | Case #4: 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 5 | Case #5: 74 80 83 84 88 89 93 98 100 101 102 104 105 109 112 114 116 117 119 121 123 125 127 130 131 133 135 136 138 139 140 145 147 148 151 153 155 156 157 159 162 164 165 167 170 171 173 177 178 180 6 | Case #6: 4 5 6 7 8 9 10 7 | Case #7: 5 6 7 8 8 | Case #8: 6 8 9 | Case #9: 68 95 125 137 161 162 167 210 225 242 253 263 285 298 318 331 349 388 411 413 432 437 462 473 477 10 | Case #10: 5 6 7 8 9 10 11 12 13 14 11 | Case #11: 22 222 12 | Case #12: 30 35 40 45 48 51 52 56 58 60 66 73 74 77 81 82 83 86 90 93 94 97 99 103 106 13 | Case #13: 53 56 72 76 77 79 84 86 92 96 97 105 107 114 118 122 124 127 131 132 134 136 143 146 150 14 | Case #14: 2 22 15 | Case #15: 5 6 10 12 16 | Case #16: 1 3 4 6 7 8 10 17 | Case #17: 2 12 22 32 42 52 62 72 82 92 18 | Case #18: 16 21 22 26 28 29 31 32 34 36 19 | Case #19: 45 51 53 60 66 70 76 78 89 93 94 99 102 103 105 107 111 114 123 126 130 132 135 20 | Case #20: 24 29 32 34 37 42 45 46 50 51 58 61 62 64 65 68 69 73 75 78 80 83 21 | Case #21: 4 5 6 7 22 | Case #22: 46 82 105 125 166 176 191 23 | Case #23: 4 12 19 25 26 27 28 29 30 53 24 | Case #24: 53 73 88 97 137 151 159 168 191 213 25 | Case #25: 30 37 40 43 45 50 54 59 60 61 62 66 68 26 | Case #26: 2 3 4 27 | Case #27: 2 4 7 9 11 14 17 19 22 24 25 26 28 31 34 28 | Case #28: 52 57 58 62 65 69 75 77 78 80 84 85 86 92 93 97 103 104 107 109 111 114 118 121 124 126 127 131 134 136 137 142 143 144 146 151 154 157 161 164 167 168 171 174 175 178 180 181 185 188 29 | Case #29: 45 93 140 186 231 275 318 360 401 441 480 518 555 591 626 660 693 725 756 786 815 843 870 896 921 945 968 990 1011 1031 1050 1068 1085 1101 1116 1130 1143 1155 1166 1176 1185 1193 1200 1206 1211 1212 1213 1214 1215 1315 30 | Case #30: 5 12 19 26 33 40 47 31 | Case #31: 37 87 137 187 237 287 337 387 437 487 537 587 637 687 737 787 837 887 937 987 1037 1087 1137 1187 1237 1287 1337 1387 1437 1487 1537 1587 1637 1687 1737 1787 1837 1887 1937 1987 2037 2087 2137 2187 2237 2287 2337 2387 2437 2487 32 | Case #32: 6 8 9 13 33 | Case #33: 514 564 635 639 701 723 729 759 776 812 832 869 871 894 917 953 963 973 1012 1037 1042 1069 1077 1105 1119 1156 1158 1172 1203 1206 1244 1266 1291 1313 1328 1338 1344 1352 1387 1396 1401 1427 1449 1462 1477 1497 1514 1525 1545 1563 34 | Case #34: 4 7 9 12 14 16 17 18 19 22 26 28 31 32 35 | Case #35: 3 8 12 13 14 15 26 36 | Case #36: 27 30 33 36 37 39 41 44 48 49 54 55 59 61 37 | Case #37: 16 20 22 27 28 31 33 34 35 37 42 44 46 47 50 53 55 58 59 38 | Case #38: 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 39 | Case #39: 1 2 3 40 | Case #40: 22 24 28 37 44 46 50 51 54 58 61 62 63 65 69 70 75 79 80 81 87 92 96 41 | Case #41: 4 8 42 | Case #42: 2 4 43 | Case #43: 16 22 49 73 44 | Case #44: 6 8 10 12 13 15 17 45 | Case #45: 21 24 27 30 33 35 36 39 42 43 46 49 50 52 56 57 62 64 65 68 71 46 | Case #46: 3 5 6 11 47 | Case #47: 3 4 5 48 | Case #48: 27 30 33 34 38 39 42 45 46 48 49 50 53 55 57 58 61 64 65 66 69 71 72 73 75 49 | Case #49: 2 6 50 | Case #50: 9 34 59 84 109 134 159 184 209 234 259 284 309 334 359 384 409 434 459 484 509 534 559 584 609 51 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/B-small-practice.in: -------------------------------------------------------------------------------- 1 | 50 2 | 3 3 | 1 2 3 4 | 2 3 5 5 | 3 5 6 6 | 2 3 4 7 | 1 2 3 8 | 2 9 | 22 222 10 | 2 22 11 | 2 22 12 | 4 13 | 11 14 16 22 14 | 3 6 9 11 15 | 6 7 11 14 16 | 9 11 15 19 17 | 10 11 19 22 18 | 6 7 10 11 19 | 3 6 8 10 20 | 7 21 | 4 9 13 16 17 18 28 22 | 1 2 3 4 5 6 23 23 | 23 25 26 29 30 32 34 24 | 6 11 15 18 20 21 33 25 | 3 8 12 13 14 15 27 26 | 1 2 3 4 5 6 22 27 | 6 11 15 18 20 21 32 28 | 2 7 8 9 10 11 24 29 | 5 10 14 17 19 20 31 30 | 5 10 14 17 19 20 30 31 | 2 7 8 9 10 11 25 32 | 22 24 27 28 31 33 34 33 | 4 9 13 16 17 18 29 34 | 10 35 | 7 15 22 28 33 37 40 41 42 58 36 | 5 13 20 26 31 32 33 34 35 55 37 | 3 11 18 19 20 21 22 23 24 50 38 | 8 16 23 29 34 38 41 43 44 61 39 | 6 14 21 27 32 36 37 38 39 57 40 | 9 17 24 30 35 39 42 44 45 62 41 | 46 49 50 52 54 57 59 60 62 64 42 | 1 2 3 4 5 6 7 8 9 47 43 | 2 10 11 12 13 14 15 16 17 48 44 | 7 15 22 28 33 37 40 41 42 59 45 | 8 16 23 29 34 38 41 43 44 60 46 | 2 10 11 12 13 14 15 16 17 49 47 | 3 11 18 19 20 21 22 23 24 51 48 | 4 12 19 25 26 27 28 29 30 52 49 | 1 2 3 4 5 6 7 8 9 46 50 | 9 17 24 30 35 39 42 44 45 63 51 | 47 48 51 53 55 56 58 61 63 64 52 | 6 14 21 27 32 36 37 38 39 56 53 | 5 13 20 26 31 32 33 34 35 54 54 | 2 55 | 22 222 56 | 2 22 57 | 22 222 58 | 2 59 | 2 6 60 | 2 4 61 | 6 8 62 | 8 63 | 2 4 6 8 9 11 13 14 64 | 3 6 7 10 11 12 15 17 65 | 10 14 17 18 20 22 24 25 66 | 9 11 12 14 16 19 20 21 67 | 4 6 8 10 12 13 14 15 68 | 8 10 11 12 15 17 18 20 69 | 9 13 15 17 19 20 21 23 70 | 6 10 11 12 14 15 17 20 71 | 2 3 4 6 8 9 10 11 72 | 6 7 9 11 14 15 17 18 73 | 8 12 14 15 16 18 19 22 74 | 4 8 9 11 12 14 16 19 75 | 13 15 16 17 19 21 24 26 76 | 11 12 14 15 18 20 22 24 77 | 11 15 18 20 21 24 26 28 78 | 2 79 | 2 6 80 | 6 8 81 | 4 8 82 | 4 83 | 2 4 5 6 84 | 6 8 9 12 85 | 1 2 3 5 86 | 1 2 4 6 87 | 4 6 8 10 88 | 3 5 8 9 89 | 2 4 6 8 90 | 10 91 | 8 9 10 11 12 13 14 15 16 17 92 | 4 5 6 7 8 9 10 11 12 13 93 | 10 11 12 13 14 15 16 17 18 19 94 | 9 10 11 12 13 14 15 16 17 18 95 | 1 2 3 4 5 6 7 8 9 10 96 | 8 9 10 11 12 13 14 15 16 17 97 | 3 4 5 6 7 8 9 10 11 12 98 | 2 3 4 5 6 7 8 9 10 11 99 | 2 3 4 5 6 7 8 9 10 11 100 | 4 5 6 7 8 9 10 11 12 13 101 | 1 2 3 4 5 6 7 8 9 10 102 | 6 7 8 9 10 11 12 13 14 15 103 | 6 7 8 9 10 11 12 13 14 15 104 | 9 10 11 12 13 14 15 16 17 18 105 | 3 4 5 6 7 8 9 10 11 12 106 | 5 6 7 8 9 10 11 12 13 14 107 | 10 11 12 13 14 15 16 17 18 19 108 | 7 8 9 10 11 12 13 14 15 16 109 | 7 8 9 10 11 12 13 14 15 16 110 | 5 111 | 2 4 5 7 8 112 | 5 7 8 10 12 113 | 7 9 10 12 14 114 | 2 4 5 7 9 115 | 9 11 12 13 16 116 | 7 8 9 12 13 117 | 8 9 11 14 16 118 | 4 6 7 9 11 119 | 4 6 7 8 9 120 | 7 121 | 7 14 21 28 35 42 49 122 | 29 30 31 32 33 34 35 123 | 22 23 24 25 26 27 28 124 | 3 10 17 24 31 38 45 125 | 15 16 17 18 19 20 21 126 | 36 37 38 39 40 41 42 127 | 43 44 45 46 47 48 49 128 | 4 11 18 25 32 39 46 129 | 2 9 16 23 30 37 44 130 | 6 13 20 27 34 41 48 131 | 1 8 15 22 29 36 43 132 | 8 9 10 11 12 13 14 133 | 1 2 3 4 5 6 7 134 | 4 135 | 3 4 5 6 136 | 1 2 3 4 137 | 1 2 3 4 138 | 3 4 5 6 139 | 2 3 4 5 140 | 2 3 4 5 141 | 4 5 6 7 142 | 7 143 | 6 7 8 9 10 11 12 144 | 6 7 8 9 10 11 12 145 | 7 8 9 10 11 12 13 146 | 2 3 4 5 6 7 8 147 | 1 2 3 4 5 6 7 148 | 4 5 6 7 8 9 10 149 | 5 6 7 8 9 10 11 150 | 3 4 5 6 7 8 9 151 | 2 3 4 5 6 7 8 152 | 7 8 9 10 11 12 13 153 | 3 4 5 6 7 8 9 154 | 1 2 3 4 5 6 7 155 | 5 6 7 8 9 10 11 156 | 10 157 | 3 13 23 33 43 53 63 73 83 93 158 | 5 15 25 35 45 55 65 75 85 95 159 | 71 72 73 74 75 76 77 78 79 80 160 | 8 18 28 38 48 58 68 78 88 98 161 | 81 82 83 84 85 86 87 88 89 90 162 | 9 19 29 39 49 59 69 79 89 99 163 | 1 2 3 4 5 6 7 8 9 10 164 | 91 92 93 94 95 96 97 98 99 100 165 | 11 12 13 14 15 16 17 18 19 20 166 | 7 17 27 37 47 57 67 77 87 97 167 | 1 11 21 31 41 51 61 71 81 91 168 | 21 22 23 24 25 26 27 28 29 30 169 | 41 42 43 44 45 46 47 48 49 50 170 | 10 20 30 40 50 60 70 80 90 100 171 | 6 16 26 36 46 56 66 76 86 96 172 | 51 52 53 54 55 56 57 58 59 60 173 | 31 32 33 34 35 36 37 38 39 40 174 | 61 62 63 64 65 66 67 68 69 70 175 | 4 14 24 34 44 54 64 74 84 94 176 | 4 177 | 2 4 5 9 178 | 7 10 12 13 179 | 3 5 6 12 180 | 8 9 11 13 181 | 1 2 3 8 182 | 1 2 3 7 183 | 2 4 5 10 184 | 3 185 | 1 2 3 186 | 2 3 4 187 | 3 4 5 188 | 3 4 5 189 | 1 2 3 190 | 4 191 | 7 10 13 14 192 | 7 9 12 14 193 | 6 7 9 12 194 | 3 6 7 10 195 | 1 3 6 7 196 | 1 3 6 7 197 | 3 6 8 9 198 | 4 199 | 13 14 15 16 200 | 3 7 11 15 201 | 1 5 9 13 202 | 1 2 3 4 203 | 9 10 11 12 204 | 2 6 10 14 205 | 4 8 12 16 206 | 10 207 | 9 12 13 17 18 22 25 26 27 31 208 | 15 19 21 24 25 26 27 28 32 33 209 | 14 18 19 21 22 26 29 32 33 36 210 | 4 6 9 12 13 16 17 20 21 22 211 | 8 10 12 13 14 16 17 19 20 21 212 | 13 18 20 22 23 25 26 27 30 32 213 | 12 16 18 20 21 25 28 30 32 34 214 | 10 14 16 19 20 23 26 27 28 32 215 | 2 4 6 8 9 10 11 13 15 16 216 | 3 5 7 10 12 14 16 18 19 21 217 | 6 7 9 10 11 12 13 16 18 19 218 | 4 5 6 7 9 11 12 14 16 18 219 | 2 3 4 5 6 8 9 10 12 14 220 | 5 7 10 13 14 18 20 22 24 26 221 | 10 14 16 18 19 20 22 23 25 26 222 | 11 16 17 20 22 23 25 26 28 29 223 | 6 9 11 14 15 19 22 23 25 28 224 | 9 12 13 14 15 17 18 20 21 22 225 | 8 11 12 16 17 20 23 25 26 29 226 | 3 227 | 2 4 6 228 | 2 3 5 229 | 6 7 8 230 | 3 5 7 231 | 4 5 6 232 | 9 233 | 5 8 9 11 13 15 16 17 19 234 | 3 5 6 7 9 10 12 13 14 235 | 11 15 17 18 19 21 23 25 26 236 | 7 9 10 12 14 17 18 19 20 237 | 2 5 6 8 9 11 13 15 16 238 | 9 13 15 16 17 19 21 23 24 239 | 9 14 18 19 20 22 24 26 28 240 | 5 9 11 13 14 16 17 19 21 241 | 12 16 18 20 21 22 25 26 28 242 | 3 6 8 9 10 13 15 17 18 243 | 7 12 14 16 18 19 21 23 25 244 | 8 13 16 17 19 20 23 25 26 245 | 6 10 12 15 17 18 19 21 22 246 | 8 11 13 14 16 18 19 20 22 247 | 4 6 8 10 11 12 14 16 18 248 | 4 7 10 11 12 14 16 18 20 249 | 1 2 3 4 5 6 7 8 9 250 | 9 251 | 9 11 12 16 17 19 23 24 26 252 | 11 15 19 21 23 24 25 27 30 253 | 5 7 8 11 13 15 17 19 20 254 | 14 17 19 21 22 25 28 30 32 255 | 1 3 5 7 8 9 11 13 14 256 | 13 17 20 23 25 26 28 29 32 257 | 8 13 15 16 18 19 21 23 25 258 | 2 5 7 8 10 11 13 15 17 259 | 3 5 7 9 11 13 14 15 17 260 | 11 13 14 17 18 21 24 25 28 261 | 1 2 3 5 6 8 10 11 13 262 | 7 8 10 13 15 16 19 21 23 263 | 10 14 17 19 21 23 24 26 28 264 | 8 10 11 14 16 18 21 23 25 265 | 13 15 16 18 19 23 26 27 29 266 | 5 9 11 13 14 16 17 18 21 267 | 6 11 13 15 16 17 18 19 22 268 | 7 269 | 111 131 156 166 189 192 203 270 | 125 136 162 191 212 237 244 271 | 48 102 111 129 189 204 212 272 | 41 60 94 119 156 157 162 273 | 86 93 119 125 129 131 153 274 | 24 49 61 86 111 119 125 275 | 61 86 94 105 111 118 139 276 | 24 35 41 46 48 63 70 277 | 35 51 86 93 131 133 136 278 | 119 133 157 176 204 209 224 279 | 70 128 139 153 203 224 244 280 | 63 115 118 131 192 209 237 281 | 49 51 60 82 102 115 128 282 | 2 283 | 4 8 284 | 2 4 285 | 6 8 286 | 3 287 | 9 11 17 288 | 5 8 12 289 | 12 17 20 290 | 8 11 14 291 | 5 9 13 292 | 3 293 | 1 2 3 294 | 3 4 5 295 | 1 2 3 296 | 2 3 4 297 | 2 3 4 298 | 4 299 | 3 6 10 12 300 | 10 12 18 19 301 | 13 18 19 22 302 | 7 10 12 16 303 | 6 10 14 18 304 | 12 16 19 22 305 | 11 14 18 19 306 | 9 307 | 16 22 23 25 30 33 37 38 42 308 | 18 23 24 29 35 36 38 41 44 309 | 23 26 28 30 35 40 41 44 49 310 | 12 15 17 21 23 26 30 34 35 311 | 1 3 7 10 11 15 16 19 23 312 | 19 26 29 31 36 38 42 46 49 313 | 4 5 9 13 15 19 22 23 26 314 | 13 18 20 23 27 29 33 37 40 315 | 11 12 15 19 20 21 25 28 30 316 | 8 11 13 14 19 20 23 25 28 317 | 11 15 19 20 23 27 31 35 36 318 | 15 19 20 21 26 29 32 36 38 319 | 17 21 22 25 31 32 37 39 41 320 | 10 13 14 19 21 23 25 29 31 321 | 1 4 8 11 12 13 17 18 19 322 | 3 5 11 12 15 18 21 23 26 323 | 19 23 25 28 34 37 39 41 46 324 | 2 325 | 4 8 326 | 2 4 327 | 2 6 328 | 7 329 | 8 13 17 21 23 28 29 330 | 22 29 34 39 45 52 56 331 | 22 33 34 42 45 53 56 332 | 11 17 22 24 26 31 34 333 | 20 28 32 35 44 48 53 334 | 3 8 9 10 13 18 22 335 | 9 15 22 27 29 32 34 336 | 8 13 15 20 24 28 33 337 | 18 28 31 38 43 48 52 338 | 16 23 29 31 39 43 45 339 | 10 20 24 29 31 35 39 340 | 14 21 27 29 34 38 42 341 | 13 24 26 34 39 44 45 342 | 10 343 | 65 84 99 119 151 190 205 206 217 236 344 | 76 98 108 141 159 201 208 224 229 246 345 | 101 144 147 157 191 222 260 268 272 294 346 | 87 134 144 186 216 217 229 265 272 281 347 | 2 10 35 44 45 65 76 90 101 117 348 | 90 120 136 142 168 211 235 259 265 267 349 | 117 168 179 188 213 236 267 274 281 302 350 | 2 22 36 40 53 65 81 86 87 103 351 | 65 98 121 144 168 190 201 211 222 236 352 | 35 43 54 74 88 121 132 137 144 161 353 | 36 40 54 74 96 99 108 136 147 179 354 | 10 24 40 52 73 98 102 127 134 137 355 | 44 61 74 92 97 144 169 184 186 208 356 | 103 137 161 208 230 236 246 267 294 302 357 | 81 102 132 169 174 205 208 235 260 267 358 | 45 79 96 113 137 168 174 199 216 230 359 | 40 52 74 92 113 119 141 142 157 188 360 | 86 127 137 184 199 206 224 259 268 274 361 | 22 24 43 61 79 84 98 120 144 168 362 | 8 363 | 18 19 27 30 33 34 35 38 364 | 9 12 17 20 21 24 27 30 365 | 15 18 21 23 25 29 32 34 366 | 18 20 24 25 26 31 34 35 367 | 3 5 7 9 12 15 18 21 368 | 13 15 22 24 27 29 31 32 369 | 21 22 27 29 31 32 36 38 370 | 7 8 14 17 19 22 24 27 371 | 6 7 8 12 14 18 20 22 372 | 9 11 14 17 18 21 24 27 373 | 5 7 11 12 14 15 17 19 374 | 11 14 19 21 22 25 26 31 375 | 12 14 18 21 22 27 28 33 376 | 15 17 24 27 28 32 34 36 377 | 10 12 17 20 21 23 25 29 378 | 2 379 | 2 4 380 | 2 4 381 | 4 5 382 | 5 383 | 7 14 15 18 22 384 | 14 15 22 25 30 385 | 4 5 7 8 10 386 | 13 14 18 24 28 387 | 10 20 24 28 30 388 | 8 18 20 24 25 389 | 5 11 12 14 15 390 | 10 12 15 20 24 391 | 7 11 14 18 20 392 | 4 393 | 7 9 14 15 394 | 3 7 9 14 395 | 10 15 19 24 396 | 7 14 17 20 397 | 9 11 17 19 398 | 14 19 20 24 399 | 3 6 7 10 400 | 10 401 | 14 18 23 24 28 31 36 38 43 48 402 | 7 9 11 18 19 22 23 27 33 35 403 | 33 39 45 48 54 57 60 64 67 73 404 | 34 35 43 44 46 50 57 66 71 73 405 | 30 37 40 43 50 51 56 58 66 71 406 | 19 22 27 28 34 37 46 50 51 57 407 | 29 32 36 38 46 50 54 55 61 66 408 | 23 24 27 31 34 37 41 43 45 50 409 | 15 19 24 27 29 34 41 46 50 54 410 | 30 33 38 39 41 45 56 61 66 67 411 | 9 11 16 20 25 27 35 36 40 45 412 | 3 7 12 16 18 23 25 29 30 33 413 | 18 21 25 28 29 34 37 38 41 46 414 | 3 7 9 14 15 19 21 25 30 34 415 | 16 17 20 24 27 28 36 37 39 44 416 | 7 9 15 17 21 24 30 32 37 39 417 | 25 27 35 37 38 43 53 55 58 64 418 | 25 30 35 36 41 46 49 53 56 57 419 | 21 23 32 36 37 41 49 54 56 60 420 | 6 421 | 11 14 16 21 22 23 422 | 8 12 15 18 19 22 423 | 12 17 19 22 24 26 424 | 6 8 11 15 16 19 425 | 3 4 6 8 11 13 426 | 3 4 7 8 11 12 427 | 11 14 17 19 22 24 428 | 13 16 18 22 23 26 429 | 7 9 11 14 17 18 430 | 8 10 14 18 21 22 431 | 4 5 9 12 14 17 432 | 3 433 | 1 3 5 434 | 5 6 8 435 | 3 4 6 436 | 1 3 4 437 | 4 5 8 438 | 4 439 | 40 63 72 81 440 | 3 16 38 40 441 | 25 49 53 72 442 | 39 73 80 81 443 | 38 52 53 80 444 | 3 5 25 39 445 | 5 22 52 63 446 | 3 447 | 3 4 5 448 | 2 3 4 449 | 2 3 4 450 | 1 2 3 451 | 3 4 5 452 | 7 453 | 9 11 14 15 17 18 20 454 | 10 13 14 16 18 20 22 455 | 2 3 5 8 9 11 13 456 | 8 9 12 13 14 17 18 457 | 8 10 11 13 14 17 19 458 | 1 2 4 6 8 9 10 459 | 9 11 13 15 17 18 21 460 | 1 2 4 6 8 9 11 461 | 6 8 10 12 13 15 16 462 | 4 5 6 10 11 13 14 463 | 11 13 16 17 19 21 22 464 | 2 3 5 8 10 11 13 465 | 4 5 6 10 12 14 16 466 | 7 467 | 11 14 16 17 19 20 23 468 | 5 8 10 11 13 16 17 469 | 9 16 18 19 21 23 24 470 | 2 4 5 6 7 8 9 471 | 7 10 11 13 15 17 19 472 | 13 16 17 19 20 22 24 473 | 2 4 6 7 9 11 13 474 | 8 14 15 17 19 20 22 475 | 6 8 10 11 13 15 18 476 | 7 12 13 15 17 19 20 477 | 6 10 11 13 14 17 19 478 | 4 6 8 10 12 14 16 479 | 9 12 13 14 17 19 21 480 | 10 481 | 11 20 22 26 27 31 33 36 40 41 482 | 6 12 14 17 20 21 23 24 25 29 483 | 11 18 21 26 29 31 33 35 38 43 484 | 10 15 20 23 26 27 29 33 37 40 485 | 14 25 28 31 33 35 37 40 44 47 486 | 16 26 29 37 40 41 44 47 49 52 487 | 13 21 24 32 35 36 38 40 42 47 488 | 8 18 21 24 26 29 30 35 38 40 489 | 12 20 23 29 30 33 34 37 40 46 490 | 9 13 17 19 24 26 27 31 34 37 491 | 3 6 7 9 10 11 12 13 15 16 492 | 3 5 6 7 8 11 13 14 16 17 493 | 7 15 16 19 23 26 29 32 35 37 494 | 13 23 24 27 29 33 34 38 41 44 495 | 16 27 29 34 37 38 40 42 46 49 496 | 17 29 32 37 40 43 46 47 48 52 497 | 7 11 14 16 21 22 24 28 29 32 498 | 6 9 12 15 18 20 23 25 27 29 499 | 5 9 11 13 15 18 20 21 23 26 500 | 7 501 | 14 19 22 23 28 31 32 502 | 11 14 19 21 23 26 28 503 | 6 10 11 13 16 18 21 504 | 9 13 16 18 21 22 25 505 | 7 10 11 16 19 21 22 506 | 14 17 18 22 26 29 31 507 | 2 5 7 9 12 14 17 508 | 13 17 21 22 26 29 30 509 | 9 11 13 18 21 22 23 510 | 17 19 21 25 28 30 32 511 | 12 14 16 21 23 26 28 512 | 2 3 6 9 11 13 14 513 | 3 7 10 11 14 17 19 514 | 10 515 | 15 18 21 23 24 28 29 30 34 35 516 | 15 20 24 28 31 37 39 43 44 47 517 | 21 26 30 33 34 39 43 47 50 51 518 | 3 7 11 15 18 19 21 25 26 29 519 | 7 10 11 15 19 20 21 22 23 28 520 | 11 12 14 16 22 24 26 27 28 30 521 | 25 28 33 34 37 43 45 50 52 55 522 | 22 23 28 34 39 45 50 52 55 59 523 | 5 10 12 18 20 22 26 28 31 34 524 | 18 20 23 25 26 31 34 38 39 43 525 | 9 11 14 21 23 24 30 33 35 39 526 | 11 15 16 23 25 29 33 34 37 40 527 | 3 5 9 11 12 15 16 18 22 25 528 | 16 21 26 29 34 41 43 45 47 49 529 | 19 22 24 29 33 37 41 43 45 49 530 | 29 34 39 40 41 47 49 58 59 63 531 | 12 19 22 24 26 33 34 37 39 41 532 | 25 28 30 35 43 49 51 55 58 63 533 | 18 22 27 30 38 43 47 50 54 58 534 | 10 535 | 1 2 3 5 7 8 11 13 15 18 536 | 9 13 18 21 23 26 29 32 35 37 537 | 5 8 13 16 17 21 23 26 28 29 538 | 2 5 6 8 10 11 12 15 17 20 539 | 11 14 20 23 24 27 31 33 38 39 540 | 15 17 25 29 30 35 38 39 40 43 541 | 6 10 13 16 19 22 25 26 29 30 542 | 3 6 11 13 15 18 20 21 23 24 543 | 15 16 23 28 30 33 37 38 40 45 544 | 1 2 3 6 8 9 11 12 15 17 545 | 8 12 15 17 22 24 26 28 30 31 546 | 17 19 24 29 32 34 40 42 43 48 547 | 3 8 11 13 15 18 20 23 25 26 548 | 2 5 8 10 12 13 14 15 16 19 549 | 18 20 26 30 31 37 39 42 45 48 550 | 11 12 20 25 26 29 31 34 37 40 551 | 8 11 18 22 24 26 27 31 33 34 552 | 12 15 21 26 28 31 34 37 39 42 553 | 7 10 15 19 22 23 24 28 30 32 554 | 3 555 | 5 7 13 556 | 9 13 17 557 | 9 12 17 558 | 5 7 12 559 | 3 5 9 560 | 7 561 | 13 18 21 25 28 30 32 562 | 6 7 11 15 20 22 25 563 | 8 11 15 19 25 28 30 564 | 11 15 19 22 25 28 29 565 | 8 11 12 15 17 19 20 566 | 4 5 10 12 17 19 21 567 | 2 4 5 7 9 11 12 568 | 1 2 5 8 10 11 13 569 | 10 14 17 20 23 25 27 570 | 3 4 8 11 14 15 18 571 | 10 12 18 20 27 29 32 572 | 5 8 10 11 13 15 18 573 | 7 9 13 17 23 25 28 574 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/B-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 3 4 6 2 | Case #2: 22 222 3 | Case #3: 8 10 15 16 4 | Case #4: 3 8 12 13 14 15 26 5 | Case #5: 4 12 19 25 26 27 28 29 30 53 6 | Case #6: 2 22 7 | Case #7: 4 8 8 | Case #8: 14 17 19 20 22 23 25 28 9 | Case #9: 2 4 10 | Case #10: 5 6 10 12 11 | Case #11: 5 6 7 8 9 10 11 12 13 14 12 | Case #12: 5 7 8 9 11 13 | Case #13: 5 12 19 26 33 40 47 14 | Case #14: 4 5 6 7 15 | Case #15: 4 5 6 7 8 9 10 16 | Case #16: 2 12 22 32 42 52 62 72 82 92 17 | Case #17: 3 5 6 11 18 | Case #18: 2 3 4 19 | Case #19: 6 8 9 13 20 | Case #20: 5 6 7 8 21 | Case #21: 16 21 22 26 28 29 31 32 34 36 22 | Case #22: 5 6 8 23 | Case #23: 1 3 4 5 7 8 9 11 12 24 | Case #24: 3 7 8 10 11 12 14 16 19 25 | Case #25: 46 82 105 125 166 176 191 26 | Case #26: 2 6 27 | Case #27: 13 14 20 28 | Case #28: 3 4 5 29 | Case #29: 3 7 11 13 30 | Case #30: 7 9 13 15 17 20 22 24 29 31 | Case #31: 6 8 32 | Case #32: 3 8 11 14 16 20 22 33 | Case #33: 53 73 88 97 137 151 159 168 191 213 34 | Case #34: 3 6 9 10 11 13 15 18 35 | Case #35: 4 5 36 | Case #36: 4 7 10 13 14 37 | Case #37: 6 9 11 19 38 | Case #38: 12 15 16 23 24 27 32 35 38 43 39 | Case #39: 4 5 8 10 14 16 40 | Case #40: 3 4 5 41 | Case #41: 16 22 49 73 42 | Case #42: 1 2 3 43 | Case #43: 6 8 10 12 13 15 17 44 | Case #44: 4 6 8 10 12 14 16 45 | Case #45: 15 23 25 35 38 40 41 44 46 48 46 | Case #46: 5 7 10 13 14 17 19 47 | Case #47: 26 31 35 37 39 44 47 54 55 58 48 | Case #48: 13 15 23 26 28 32 33 37 38 42 49 | Case #49: 3 5 9 50 | Case #50: 1 3 4 6 7 8 10 51 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/C-large-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 4 2 | Case #2: 3 3 | Case #3: 3 4 | Case #4: 6 5 | Case #5: 3 6 | Case #6: 26 7 | Case #7: 4 8 | Case #8: 91 9 | Case #9: 100 10 | Case #10: 553 11 | Case #11: 50 12 | Case #12: 94 13 | Case #13: 3 14 | Case #14: 4 15 | Case #15: 30 16 | Case #16: 9 17 | Case #17: 7 18 | Case #18: 6 19 | Case #19: 7 20 | Case #20: 6 21 | Case #21: 10 22 | Case #22: 65 23 | Case #23: 9 24 | Case #24: 300 25 | Case #25: 6 26 | Case #26: 500 27 | Case #27: 9 28 | Case #28: 100 29 | Case #29: 13 30 | Case #30: 5 31 | Case #31: 3 32 | Case #32: 1000 33 | Case #33: 30 34 | Case #34: 5 35 | Case #35: 5 36 | Case #36: 68 37 | Case #37: 4 38 | Case #38: 100 39 | Case #39: 22 40 | Case #40: 100 41 | Case #41: 3 42 | Case #42: 100 43 | Case #43: 385 44 | Case #44: 10 45 | Case #45: 26 46 | Case #46: 387 47 | Case #47: 3 48 | Case #48: 13 49 | Case #49: 33 50 | Case #50: 25 51 | Case #51: 5 52 | Case #52: 3 53 | Case #53: 9 54 | Case #54: 9 55 | Case #55: 48 56 | Case #56: 6 57 | Case #57: 9 58 | Case #58: 9 59 | Case #59: 300 60 | Case #60: 50 61 | Case #61: 116 62 | Case #62: 29 63 | Case #63: 100 64 | Case #64: 3 65 | Case #65: 26 66 | Case #66: 3 67 | Case #67: 20 68 | Case #68: 25 69 | Case #69: 32 70 | Case #70: 1000 71 | Case #71: 13 72 | Case #72: 20 73 | Case #73: 3 74 | Case #74: 100 75 | Case #75: 8 76 | Case #76: 9 77 | Case #77: 9 78 | Case #78: 11 79 | Case #79: 27 80 | Case #80: 12 81 | Case #81: 20 82 | Case #82: 33 83 | Case #83: 7 84 | Case #84: 20 85 | Case #85: 9 86 | Case #86: 13 87 | Case #87: 9 88 | Case #88: 3 89 | Case #89: 500 90 | Case #90: 100 91 | Case #91: 60 92 | Case #92: 6 93 | Case #93: 20 94 | Case #94: 250 95 | Case #95: 386 96 | Case #96: 3 97 | Case #97: 91 98 | Case #98: 7 99 | Case #99: 5 100 | Case #100: 70 101 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/C-small-practice.in: -------------------------------------------------------------------------------- 1 | 100 2 | 4 3 | 2 3 4 1 4 | 4 5 | 3 3 4 1 6 | 4 7 | 3 3 4 3 8 | 10 9 | 7 8 10 10 9 2 9 6 3 3 10 | 10 11 | 2 3 1 10 3 5 6 7 8 9 12 | 3 13 | 2 1 1 14 | 3 15 | 2 1 2 16 | 3 17 | 2 3 1 18 | 3 19 | 2 3 2 20 | 3 21 | 3 1 1 22 | 3 23 | 3 1 2 24 | 10 25 | 2 5 5 1 10 8 1 7 2 6 26 | 8 27 | 2 1 6 3 8 4 6 5 28 | 6 29 | 3 5 2 6 1 4 30 | 10 31 | 4 8 2 2 1 9 6 3 6 7 32 | 10 33 | 6 1 6 5 4 1 5 10 3 7 34 | 5 35 | 5 3 1 3 3 36 | 6 37 | 3 4 1 3 6 1 38 | 10 39 | 2 10 2 1 6 5 8 4 3 3 40 | 8 41 | 8 7 4 3 6 5 1 2 42 | 10 43 | 3 4 9 1 1 8 6 5 1 7 44 | 6 45 | 2 3 2 5 4 3 46 | 10 47 | 3 8 1 1 3 3 6 9 2 8 48 | 7 49 | 3 5 1 7 2 4 6 50 | 5 51 | 3 1 5 2 4 52 | 9 53 | 5 4 6 1 2 8 9 3 7 54 | 10 55 | 5 1 10 9 2 10 4 3 7 3 56 | 6 57 | 2 1 4 3 6 5 58 | 8 59 | 6 8 1 7 8 4 3 2 60 | 10 61 | 4 1 2 1 4 3 8 2 5 8 62 | 6 63 | 6 6 1 5 2 5 64 | 4 65 | 4 4 2 2 66 | 7 67 | 5 1 7 3 2 7 6 68 | 10 69 | 4 10 5 6 9 1 2 3 8 2 70 | 6 71 | 5 6 5 2 2 5 72 | 10 73 | 7 5 4 6 8 9 6 4 4 2 74 | 10 75 | 10 9 5 7 3 8 4 6 2 1 76 | 10 77 | 9 7 1 1 10 8 4 6 10 9 78 | 10 79 | 8 1 2 9 3 9 9 5 6 6 80 | 8 81 | 2 1 7 2 8 5 1 6 82 | 10 83 | 8 3 2 7 9 10 4 1 5 6 84 | 6 85 | 5 4 4 3 1 1 86 | 10 87 | 6 4 8 2 1 10 9 4 8 6 88 | 9 89 | 5 8 4 9 6 7 1 3 2 90 | 10 91 | 5 8 10 10 1 4 8 9 7 9 92 | 8 93 | 7 6 2 7 7 3 1 1 94 | 10 95 | 4 1 7 3 8 10 3 9 6 2 96 | 9 97 | 4 3 9 8 1 2 3 5 7 98 | 5 99 | 2 4 1 1 3 100 | 10 101 | 8 6 4 2 6 2 3 6 2 8 102 | 8 103 | 2 8 1 7 1 8 8 4 104 | 7 105 | 3 1 7 5 2 3 4 106 | 8 107 | 5 4 6 7 2 2 3 1 108 | 7 109 | 4 4 4 1 4 4 4 110 | 7 111 | 4 4 4 5 3 3 3 112 | 9 113 | 2 9 6 5 9 1 3 4 5 114 | 7 115 | 3 4 1 1 4 3 6 116 | 7 117 | 6 4 4 1 7 5 1 118 | 8 119 | 6 6 8 3 6 5 5 4 120 | 9 121 | 3 7 4 5 6 1 2 9 8 122 | 9 123 | 4 1 2 5 3 8 9 6 6 124 | 9 125 | 6 8 8 3 3 2 6 5 6 126 | 10 127 | 5 8 1 8 9 7 1 2 6 8 128 | 10 129 | 3 5 7 8 8 1 10 4 3 6 130 | 9 131 | 4 7 8 3 2 9 2 1 7 132 | 5 133 | 2 1 2 2 1 134 | 7 135 | 3 3 7 3 3 3 2 136 | 9 137 | 5 7 8 6 7 3 5 4 5 138 | 7 139 | 3 7 1 2 4 1 5 140 | 9 141 | 4 5 4 3 1 7 1 6 5 142 | 10 143 | 3 6 8 1 9 7 4 3 8 9 144 | 7 145 | 3 1 1 3 3 2 2 146 | 7 147 | 4 7 5 6 3 2 1 148 | 4 149 | 2 1 2 3 150 | 4 151 | 2 1 4 3 152 | 8 153 | 4 4 7 2 6 3 5 1 154 | 5 155 | 2 3 2 5 4 156 | 10 157 | 9 5 2 10 7 7 9 2 7 9 158 | 6 159 | 5 6 1 2 4 3 160 | 9 161 | 8 7 9 3 6 5 2 1 4 162 | 10 163 | 7 3 4 7 2 7 5 6 2 6 164 | 6 165 | 3 4 6 2 2 1 166 | 9 167 | 8 7 2 9 4 1 3 6 5 168 | 10 169 | 7 8 4 3 7 7 9 2 10 5 170 | 10 171 | 3 7 1 6 10 2 8 4 1 3 172 | 6 173 | 5 6 5 5 4 4 174 | 9 175 | 4 5 8 3 4 8 9 6 1 176 | 7 177 | 5 3 2 2 1 4 6 178 | 5 179 | 4 3 1 3 1 180 | 7 181 | 4 3 1 7 6 7 4 182 | 6 183 | 6 3 4 1 1 1 184 | 10 185 | 6 7 7 8 9 7 8 7 2 7 186 | 7 187 | 5 1 2 7 6 4 3 188 | 6 189 | 4 3 6 5 2 1 190 | 9 191 | 9 9 6 8 4 7 4 4 5 192 | 10 193 | 10 9 6 8 1 2 4 7 3 5 194 | 10 195 | 10 8 6 2 4 4 10 10 6 9 196 | 8 197 | 8 6 8 7 7 8 6 6 198 | 10 199 | 4 5 1 8 3 4 10 6 8 7 200 | 10 201 | 6 3 6 9 8 1 6 7 8 1 202 | -------------------------------------------------------------------------------- /day2_GoogleCodeJam2016_Round1A/C-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 4 2 | Case #2: 3 3 | Case #3: 3 4 | Case #4: 6 5 | Case #5: 3 6 | Case #6: 3 7 | Case #7: 3 8 | Case #8: 3 9 | Case #9: 3 10 | Case #10: 3 11 | Case #11: 3 12 | Case #12: 7 13 | Case #13: 4 14 | Case #14: 4 15 | Case #15: 4 16 | Case #16: 10 17 | Case #17: 3 18 | Case #18: 6 19 | Case #19: 3 20 | Case #20: 4 21 | Case #21: 3 22 | Case #22: 6 23 | Case #23: 5 24 | Case #24: 4 25 | Case #25: 5 26 | Case #26: 4 27 | Case #27: 4 28 | Case #28: 6 29 | Case #29: 5 30 | Case #30: 7 31 | Case #31: 3 32 | Case #32: 4 33 | Case #33: 4 34 | Case #34: 4 35 | Case #35: 3 36 | Case #36: 3 37 | Case #37: 10 38 | Case #38: 9 39 | Case #39: 5 40 | Case #40: 5 41 | Case #41: 10 42 | Case #42: 6 43 | Case #43: 9 44 | Case #44: 5 45 | Case #45: 3 46 | Case #46: 4 47 | Case #47: 10 48 | Case #48: 4 49 | Case #49: 3 50 | Case #50: 7 51 | Case #51: 3 52 | Case #52: 6 53 | Case #53: 5 54 | Case #54: 3 55 | Case #55: 3 56 | Case #56: 9 57 | Case #57: 6 58 | Case #58: 4 59 | Case #59: 4 60 | Case #60: 5 61 | Case #61: 5 62 | Case #62: 3 63 | Case #63: 5 64 | Case #64: 5 65 | Case #65: 5 66 | Case #66: 4 67 | Case #67: 3 68 | Case #68: 4 69 | Case #69: 4 70 | Case #70: 6 71 | Case #71: 9 72 | Case #72: 5 73 | Case #73: 5 74 | Case #74: 4 75 | Case #75: 4 76 | Case #76: 4 77 | Case #77: 5 78 | Case #78: 7 79 | Case #79: 6 80 | Case #80: 6 81 | Case #81: 5 82 | Case #82: 3 83 | Case #83: 3 84 | Case #84: 4 85 | Case #85: 5 86 | Case #86: 5 87 | Case #87: 7 88 | Case #88: 7 89 | Case #89: 3 90 | Case #90: 7 91 | Case #91: 5 92 | Case #92: 6 93 | Case #93: 7 94 | Case #94: 6 95 | Case #95: 5 96 | Case #96: 4 97 | Case #97: 6 98 | Case #98: 5 99 | Case #99: 3 100 | Case #100: 7 101 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day3_GoogleCodeJam2016_Round1B/.DS_Store -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/2016_R1B_A_GettingTheDigits.py: -------------------------------------------------------------------------------- 1 | def solve(S): 2 | alp = ['ZERO', 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE'] 3 | count = [['Z', 'W', 'U', 'X', 'G'], ['O', 'T', 'F', 'S'], ['I']] 4 | countIndex = [[0, 2, 4, 6, 8], [1, 3, 5, 7], [9]] 5 | letters = [0] * 26 6 | result = [0] * 10 7 | final = '' 8 | for x in S: 9 | letters[ord(x) - ord('A')] += 1 10 | for i in range(len(count)): 11 | for x, y in zip(count[i], countIndex[i]): 12 | val = letters[ord(x) - ord('A')] 13 | result[y] = val 14 | for z in alp[y]: 15 | letters[ord(z) - ord('A')] -= val 16 | for i in range(len(result)): 17 | final += chr(ord('0') + i) * result[i] 18 | return final 19 | 20 | 21 | T = int(input()) 22 | 23 | for i in range(1, T+1): 24 | S = input() 25 | print('Case #%d: %s' % (i, solve(S)) 26 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/2016_R1B_A_GettingTheDigits_v2.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def solve(S): 4 | alp = ['ZERO', 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE'] 5 | 6 | A = np.zeros((26, 10)) 7 | for i in range(10): 8 | for x in alp[i]: 9 | A[ord(x)-ord('A'), i] += 1 10 | 11 | B = np.zeros(26) 12 | for x in S: 13 | B[ord(x)-ord('A')] += 1 14 | 15 | X = np.linalg.lstsq(A, B)[0] 16 | final = '' 17 | for i in range(10): 18 | final += chr(ord('0')+i)*int(round(X[i])) 19 | 20 | return final 21 | 22 | 23 | T = int(input()) 24 | 25 | for i in range(1, T+1): 26 | S = input() 27 | print('Case #%d: %s' % (i, solve(S))) 28 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/2016_R1B_B_CloseMatch.py: -------------------------------------------------------------------------------- 1 | 2 | def commonEval(A, B): 3 | global minimal, lindex, rindex 4 | a = int(A) 5 | b = int(B) 6 | d = abs(a-b) 7 | if minimal > d: 8 | minimal = d 9 | lindex = A 10 | rindex = B 11 | if minimal == d: 12 | if a < int(lindex): 13 | lindex = A 14 | rindex = B 15 | if a == int(lindex): 16 | if b < int(rindex): 17 | lindex = A 18 | rindex = B 19 | 20 | def leftEval(A, B, p): 21 | A = A.replace('?', '0') 22 | B = B.replace('?', '9') 23 | commonEval(A, B) 24 | 25 | def rightEval(A, B, p): 26 | A = A.replace('?', '9') 27 | B = B.replace('?', '0') 28 | commonEval(A, B) 29 | 30 | 31 | def solve(A, B, p): 32 | if p == len(A): 33 | commonEval(A, B) 34 | return 35 | if A[p] == '?' and B[p] == '?': 36 | leftEval(A[:p]+'1'+A[p+1:], B[:p]+'0'+B[p+1:], p+1) 37 | rightEval(A[:p]+'0'+A[p+1:], B[:p]+'1'+B[p+1:], p+1) 38 | A = A[:p]+'0'+A[p+1:] 39 | B = B[:p]+'0'+B[p+1:] 40 | solve(A, B, p+1) 41 | return 42 | if A[p] == '?': 43 | n = ord(B[p]) 44 | if n != ord('9'): 45 | leftEval(A[:p]+chr(n+1)+A[p+1:], B, p+1) 46 | if n != ord('0'): 47 | rightEval(A[:p]+chr(n-1)+A[p+1:], B, p+1) 48 | A = A[:p]+B[p]+A[p+1:] 49 | solve(A, B, p+1) 50 | return 51 | if B[p] == '?': 52 | n = ord(A[p]) 53 | if n != ord('9'): 54 | rightEval(A, B[:p]+chr(n+1)+B[p+1:], p+1) 55 | if n != ord('0'): 56 | leftEval(A, B[:p]+chr(n-1)+B[p+1:], p+1) 57 | B = B[:p]+A[p]+B[p+1:] 58 | solve(A, B, p+1) 59 | return 60 | if A[p] > B[p]: 61 | leftEval(A, B, p+1) 62 | return 63 | if A[p] < B[p]: 64 | rightEval(A, B, p+1) 65 | return 66 | solve(A, B, p+1) 67 | 68 | 69 | T = int(input()) 70 | for i in range(1, T+1): 71 | 72 | minimal = 10 ** 20 73 | lindex = str(10**20) 74 | rindex = str(10**20) 75 | 76 | C, J = input().split(' ') 77 | solve(C, J, 0) 78 | print('Case #%d: %s %s' % (i, lindex, rindex)) 79 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/2016_R1B_C_Technobabble.py: -------------------------------------------------------------------------------- 1 | T = int(input()) 2 | 3 | def solve(v, g, n): 4 | f = [[0] * v for _ in range(v)] 5 | 6 | find = True 7 | while find: 8 | qu = [0] 9 | prev = [0] * v 10 | prev[0] = -1 11 | find = False 12 | while len(qu): 13 | t = qu.pop() 14 | if t == 1: 15 | find = True 16 | while t: 17 | if g[prev[t]][t]: 18 | f[prev[t]][t] += 1 19 | else: 20 | f[t][prev[t]] -= 1 21 | t = prev[t] 22 | break 23 | 24 | for i in range(v): 25 | if not prev[i]: 26 | if g[t][i] and not f[t][i]: 27 | qu.insert(0, i) 28 | prev[i] = t 29 | if g[i][t] and f[i][t]: 30 | qu.insert(0, i) 31 | prev[i] = t 32 | s = 0 33 | 34 | 35 | 36 | for i in range(2, v): 37 | if f[i][1]: 38 | s+= 1 39 | 40 | 41 | return n-((v-2)- s) 42 | 43 | for i in range(1, T + 1): 44 | N = int(input()) 45 | g = [[0] * 2002 for _ in range(2002)] 46 | v = 2 47 | aList = [] 48 | bList = [] 49 | aIndex = [] 50 | bIndex = [] 51 | for j in range(N): 52 | A, B = input().split(' ') 53 | if not A in aList: 54 | aList.append(A) 55 | aIndex.append(v) 56 | g[0][v] = 1 57 | v += 1 58 | 59 | if not B in bList: 60 | bList.append(B) 61 | bIndex.append(v) 62 | g[v][1] = 1 63 | v+= 1 64 | 65 | g[aIndex[aList.index(A)]][bIndex[bList.index(B)]] = 1 66 | print ('Case #%d: %d' % (i, solve(v, g, N))) 67 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/A-large-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 012 2 | Case #2: 2468 3 | Case #3: 114 4 | Case #4: 3 5 | Case #5: 00000000000000000000000000000000001111111111111111111111111111112222222222222222222222222222233333333333333333333333333444444444444444444444444444444444555555555555555555555555666666666666666666666666666666666777777777777777777777777777888888888888888888888888888999999999999999999999999999 6 | Case #6: 00000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888888899999999999999999999999999999999999999999999999999 7 | Case #7: 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555577777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777799999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 8 | Case #8: 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777799999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 9 | Case #9: 222222 10 | Case #10: 000000000000000000000000000000000111111111111111111111111111111111111111111112222222222222222222222222222222222222222333333333333333333333333333333333333333344444444444444444444444444445555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999 11 | Case #11: 00000001112222334444444556666777777788888888999 12 | Case #12: 116 13 | Case #13: 148 14 | Case #14: 11119 15 | Case #15: 99999 16 | Case #16: 01579 17 | Case #17: 000000000000000000000000000111111111111111111111111122222222222222222223333333333333333333333334444444444444444444455555555555555555555556666666666666666666666666666667777777777777777788888888888888888888888899999999999999999999999999999 18 | Case #18: 11999 19 | Case #19: 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 20 | Case #20: 0000000000000000000000000000000000000000000001111111111111111111111111111111111111111122222222222222222222222222222222222222233333333333333333333333333333333333333333333334444444444444444444444444444444444444444444555555555555555555555555555555555555555566666666666666666666666666666666666677777777777777777777777777777777777777777777888888888888888888888888888888888888888999999999999999999999999999999999999999999999999 21 | Case #21: 000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999 22 | Case #22: 0123456789 23 | Case #23: 111112 24 | Case #24: 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111144444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444448888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888 25 | Case #25: 00000000000000011111111111111112222222222222222223333333333333333334444444444445555555555555555555555666666666667777777777777778888888888888999999999999999999999 26 | Case #26: 0 27 | Case #27: 00000000000000000011111111111111111111111111111222222222222222222222222333333333333333333333333333333344444444444444445555555555555555566666666666666666666777777777777777777788888888888888888888889999999999999999 28 | Case #28: 0000000111111111222222222223333333334444444445555555566666666666666777778888888888899999999999 29 | Case #29: 013456789 30 | Case #30: 149 31 | Case #31: 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 32 | Case #32: 4567 33 | Case #33: 44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444449999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 34 | Case #34: 012345679 35 | Case #35: 012345689 36 | Case #36: 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 37 | Case #37: 00000 38 | Case #38: 00001 39 | Case #39: 00000000000000000000000000000000111111111111111111111111111111112222222222222222222222222222222222233333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555566666666666666666666666666666666666777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888899999999999999999999999999999999999999 40 | Case #40: 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111199999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 41 | Case #41: 1166 42 | Case #42: 00000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888889999999999999999999999999999999999999999999999999 43 | Case #43: 00000011111111122222222233333333333333444444444444555555556666666666777777777777788888888888899999999 44 | Case #44: 111111 45 | Case #45: 00000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888888899999999999999999999999999999999999999999999999999 46 | Case #46: 023456789 47 | Case #47: 112255 48 | Case #48: 0000000000000000000000000000000000000000000001111111111111111111111111111111111111111122222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444555555555555555555555555555555555555555555566666666666666666666666666666666666666666677777777777777777777777777777777777777777888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999 49 | Case #49: 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888 50 | Case #50: 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111119999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 51 | Case #51: 00001122234444555666689 52 | Case #52: 0000000000000000000000000000000000000000000000011111111111111111111111111111111111111111122222222222222222222222222222222222222222222233333333333333333333333333333333333333333333334444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666777777777777777777777777777777777777788888888888888888888888888888888888888888888889999999999999999999999999999999999999999999 53 | Case #53: 000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555556666666666666666666666666666666666677777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888889999999999999999999999999999999999999999999999 54 | Case #54: 000000000000000001111111111111111222222222222222333333333333333333334444444444444444555555555555666666666666666777777777777777777778888888888888888888888888899999999999999 55 | Case #55: 000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333344444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999 56 | Case #56: 0000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333334444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888888888899999999999999999999999999999999999999999999999999 57 | Case #57: 012356789 58 | Case #58: 000000000000000000000000000000011111111111111111111111111111111111111111111122222222222222222222222233333333333333333333333333333333333333333333344444444444444444444444444444444555555555555555555555556666666666666666666666666666666666677777777777777777777777777777777777777788888888888888888888888899999999999999999999999999999 59 | Case #59: 00000000000000000000000000000000000000011111111111111111111111111111111111111111111111111122222222222222222222222222222233333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555556666666666666666666666666666666666667777777777777777777777777777777777777777778888888888888888888888888888888888999999999999999999999999999999999999 60 | Case #60: 01 61 | Case #61: 123456789 62 | Case #62: 0000000000000000000000000000000000001111111111111111111111111111111111122222222222222222222222222222222222223333333333333333333333333333333333334444444444444444444444444444444444444444444444555555555555555555555555555555555555566666666666666666666666666666666666777777777777777777777777777777788888888888888888888888888888999999999999999999999999999 63 | Case #63: 49 64 | Case #64: 111122 65 | Case #65: 00000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111122222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555556666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999 66 | Case #66: 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 67 | Case #67: 00 68 | Case #68: 1348 69 | Case #69: 5679 70 | Case #70: 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111116666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666669999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 71 | Case #71: 112222 72 | Case #72: 1579 73 | Case #73: 000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444455555555555555555555555555555555555556666666666666666666666666666666666666666777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888888888899999999999999999999999999999999999999999999999999999999999 74 | Case #74: 11111 75 | Case #75: 1779 76 | Case #76: 8 77 | Case #77: 00000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111112222222222222222222222222222223333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999 78 | Case #78: 1169 79 | Case #79: 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 80 | Case #80: 111222 81 | Case #81: 0000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999 82 | Case #82: 0000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888999999999999999999999999999999999999 83 | Case #83: 1 84 | Case #84: 11199 85 | Case #85: 012346789 86 | Case #86: 0000000000000000000000000000000000000011111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999 87 | Case #87: 012345789 88 | Case #88: 000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222233333333333333333333333333333333333333333344444444444444444444444444444444444444444444555555555555555555555555555555555566666666666666666666666666666666666666666777777777777777777777777777777777777777788888888888888888888888888888888889999999999999999999999999999999999999999999999 89 | Case #89: 012345678 90 | Case #90: 00000011111111222222233334444444444444445555555555556666666666777777777788889999999999 91 | Case #91: 012456789 92 | Case #92: 1799 93 | Case #93: 467 94 | Case #94: 19999 95 | Case #95: 122222 96 | Case #96: 569 97 | Case #97: 0011122222223334444555666666667777778899 98 | Case #98: 00000001111112222334444444444444556667777777788888899999999 99 | Case #99: 111227 100 | Case #100: 1179 101 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/A-small-practice.in: -------------------------------------------------------------------------------- 1 | 100 2 | OZONETOWER 3 | WEIGHFOXTOURIST 4 | OURNEONFOE 5 | ETHER 6 | OEIHGERTZ 7 | EIVEOUXISEFNRFSV 8 | NESINOEOX 9 | ORNOEZE 10 | IEENNEOENNNNNNOIIE 11 | ITERWNIUNVNNFFIOEOE 12 | WVEEOTHOETNSFUERR 13 | FIZNROREUEOERFUOOVF 14 | NWETNOI 15 | TNENRHOWZEIETROE 16 | ONE 17 | EOFIVNE 18 | NINXEIS 19 | ONNSNNEEEIESEVNEV 20 | EVGFVIFEUHOEFITIR 21 | ENRTENHOETEOOOWEN 22 | VFEI 23 | OZRE 24 | EFEVIIIXNEEVSNNS 25 | EONNESENINNNVEEI 26 | ZRNORFOUOEE 27 | NTFIIEFVHEEVVGISEE 28 | ITVOOFENWFOEWNVIOEET 29 | HIETG 30 | OZER 31 | EOOENEONENNEONOEON 32 | UOFR 33 | NIEXVIFESNI 34 | TEEHR 35 | NNIINIOTEVWENTEOWF 36 | ORORZEREOEZREZEOZON 37 | UROFZREO 38 | ENGHITINE 39 | HRIGSISEOXIEEITXZVF 40 | VNSOEENEXIEZSRNI 41 | NURONIONEFE 42 | OWT 43 | NOETEWNIIVNEONEOF 44 | INNE 45 | ENGENNETIIHO 46 | OEENNNONEOTENOOEWO 47 | NENSIVEENOOENNE 48 | TEUHFTEIEOHORRNEG 49 | SOEVEEVEEESNNNNO 50 | HEVEIFTRE 51 | REWOORSZEONUTFEV 52 | ENEOON 53 | ONWNOTWOTNSOEEENEVEO 54 | NONTWOEWONEONEOOTE 55 | XSI 56 | NIIENOEEOONENNNEN 57 | NNIOEIONENXSE 58 | ENEINOHRGZTHTIEIEG 59 | IVNFIEESNVONEENE 60 | FERINOUN 61 | ZVREEOEONFSURXSI 62 | TEGIH 63 | EFFZRIIVOVEE 64 | IIENNEIINNINNENNENEN 65 | EOOOEFOZRRRZRUZE 66 | TEEERHINN 67 | TOEROHRENEFU 68 | NEONNNONEEIOENOE 69 | IENESENVN 70 | WTEOIHGT 71 | HIGET 72 | EGHITEINN 73 | SREZOIX 74 | VXNESFREVEIUSIFO 75 | INSXNNEEINI 76 | SIX 77 | NOTGERFIOEHU 78 | GGIHTEITHEFVEI 79 | EEOZOZOZEZRREZROERRO 80 | OTETTWWOWOOTNEWNOO 81 | EHSEXNETOINOROEFUR 82 | REOZZOER 83 | ESSEOIONIXNX 84 | EEIHIGNNT 85 | TTEOTOOWOOOWWTWNTW 86 | NIEEONNNNIE 87 | EOEONNNENOEOOEN 88 | ROFU 89 | IZEHTGREO 90 | WTONETOWNWOOENTOOE 91 | OTTWOTWTOTWTWOOWWO 92 | GTHEI 93 | OOEUUFTGIZFRRHREO 94 | VEHFORTEEITW 95 | RTEERTEVRHEEEHTSEEHN 96 | EENNNENOINNIIEIENNN 97 | ISENSVXE 98 | FEIONVSZERENEIEOENNV 99 | XESVURIFESON 100 | ZROE 101 | HINFUTEROTGIEGHNEI 102 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/A-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 012 2 | Case #2: 2468 3 | Case #3: 114 4 | Case #4: 3 5 | Case #5: 08 6 | Case #6: 4567 7 | Case #7: 116 8 | Case #8: 01 9 | Case #9: 11999 10 | Case #10: 24599 11 | Case #11: 2347 12 | Case #12: 01445 13 | Case #13: 29 14 | Case #14: 0239 15 | Case #15: 1 16 | Case #16: 15 17 | Case #17: 69 18 | Case #18: 1779 19 | Case #19: 4558 20 | Case #20: 11123 21 | Case #21: 5 22 | Case #22: 0 23 | Case #23: 5679 24 | Case #24: 1799 25 | Case #25: 014 26 | Case #26: 5578 27 | Case #27: 112255 28 | Case #28: 8 29 | Case #29: 0 30 | Case #30: 111111 31 | Case #31: 4 32 | Case #32: 569 33 | Case #33: 3 34 | Case #34: 22599 35 | Case #35: 00001 36 | Case #36: 04 37 | Case #37: 89 38 | Case #38: 05668 39 | Case #39: 0679 40 | Case #40: 149 41 | Case #41: 2 42 | Case #42: 11259 43 | Case #43: 9 44 | Case #44: 189 45 | Case #45: 111112 46 | Case #46: 1179 47 | Case #47: 1348 48 | Case #48: 1177 49 | Case #49: 35 50 | Case #50: 0247 51 | Case #51: 11 52 | Case #52: 111227 53 | Case #53: 111122 54 | Case #54: 6 55 | Case #55: 11199 56 | Case #56: 1169 57 | Case #57: 0889 58 | Case #58: 1579 59 | Case #59: 49 60 | Case #60: 0467 61 | Case #61: 8 62 | Case #62: 055 63 | Case #63: 99999 64 | Case #64: 0004 65 | Case #65: 39 66 | Case #66: 134 67 | Case #67: 11119 68 | Case #68: 79 69 | Case #69: 28 70 | Case #70: 8 71 | Case #71: 89 72 | Case #72: 06 73 | Case #73: 4567 74 | Case #74: 699 75 | Case #75: 6 76 | Case #76: 148 77 | Case #77: 588 78 | Case #78: 00000 79 | Case #79: 112222 80 | Case #80: 11346 81 | Case #81: 00 82 | Case #82: 1166 83 | Case #83: 89 84 | Case #84: 122222 85 | Case #85: 199 86 | Case #86: 11111 87 | Case #87: 4 88 | Case #88: 08 89 | Case #89: 111222 90 | Case #90: 222222 91 | Case #91: 8 92 | Case #92: 0448 93 | Case #93: 235 94 | Case #94: 3337 95 | Case #95: 19999 96 | Case #96: 67 97 | Case #97: 01579 98 | Case #98: 467 99 | Case #99: 0 100 | Case #100: 4889 101 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/B-large-practice.in: -------------------------------------------------------------------------------- 1 | 200 2 | 1? 2? 3 | ?2? ??3 4 | ? ? 5 | ?5 ?0 6 | 0????????????????? ?99999999999999999 7 | ??7?23?7?130?4?32? 5?0?0?154297?53??? 8 | 999999999999999999 ?99999999999999999 9 | ?54?63 89???6 10 | 5??4 7?07 11 | ?5?9?5?5?0?9?5?5? ?5?5?9?9?5?0?9?9? 12 | 50?1?97?3???9??291 0??56?5?84?2??8680 13 | 9????????????????? ?99999999999999999 14 | ?????????????????5 ?99999999999999999 15 | 9?9?9?9?9?9?9?9?9? ?????????????????5 16 | 0????????????????? ?????????????????9 17 | ?067?84??? ???91?12?0 18 | 95?59??0?9?59?9?5? ??????5?5950?9??5? 19 | ?99999999999999999 9????????????????? 20 | ?????????????????9 ?????????????????5 21 | ?099?9090?99?0??9? ???0??0?00???909?? 22 | 3?63?5?778???73??? 0?12?2?5?57??26?7? 23 | ?9? ?4? 24 | ?0?5?1?1?9?1?9?6? ?5?0?5?0?6?1?6?6? 25 | ?7? ?2? 26 | ?????????????????0 ?99999999999999999 27 | 93 ?8 28 | ?184?80030?0 ??56??????3? 29 | ??2?392?3??????17? ?8?8?13?8???4?6??? 30 | ?0?????5?00?50???? 5005505???5000?505 31 | ?99999999999999999 ?????????????????0 32 | ?????????????????9 ?99999999999999999 33 | 7?2????240??2?6??? ?7?2?7???4???2??92 34 | 1?53??731??4987??0 ?????8?168721???45 35 | ?77??? 752983 36 | 0????????????????? ?????????????????5 37 | 090?19??0?1?9????1 ?9009?011?09??1??1 38 | 0 ? 39 | ? 9 40 | ?2?2?4?9?0?5?6?6? ?7?7?9?9?1?3?3?9? 41 | 9???909?9??0?101?? 11???9?9???0?199?0 42 | ?9?4?9?1?1?6?1?9? ?4?0?9?1?1?0?0?9? 43 | 9????????????????? 9?9?9?9?9?9?9?9?9? 44 | 9 ? 45 | 4?5?376??74 9?1??0?6??? 46 | 3?3?4022??? ?6?????4??7 47 | 2??96?62? 55?6??4?3 48 | ?99999999999999999 0????????????????? 49 | 9?9?9?9?9?9?9?9?9? ?????????????????0 50 | 0?1578?2??879541 ???99????93?1??? 51 | ????6666???5?544?4 ?5??6?5554564?45?4 52 | ?4?4?6?5?5?5?6?5? ?5?6?5?6?5?5?4?5? 53 | ?0?5?5?5?0?0?0?5? ?0?5?0?0?0?0?0?0? 54 | ?9????????99????1? ?91??0?9?1??0?00?1 55 | 5?0????000??0?5??? ?5?0?5???0???0??50 56 | 4??7?????550?2???9 ?4?1??53194828?7?? 57 | 5?4?????5?????4?88 6??28798835?????21 58 | 0????????????????? ?????????????????0 59 | ????8? ???02? 60 | 9?9?9?9?9?9?9?9?9? ?99999999999999999 61 | ?????????????????9 999999999999999999 62 | 129??????6? ?????0??344 63 | ?0?9?0?0?0?9?9?9? ?9?0?0?0?0?9?0?9? 64 | ?1?0?9?1?1?9?1?1? ?1?0?9?1?0?9?0?9? 65 | ?5? ?0? 66 | ??5?? ??0?? 67 | 9876543210???????? ????????0123456789 68 | ?2? ?7? 69 | ?????????????????0 ?????????????????9 70 | 9?9?9?9?9?9?9?9?9? 9????????????????? 71 | ?5?5?5?6?6?5?6?5? ?4?5?6?5?5?4?4?6? 72 | ?????????????????? ?????????????????? 73 | ??15???9????? 980?????9?187 74 | ??19??????1?10?0?9 1?9?9??1???19?99?1 75 | ??0?00?0?9?99??09? 9?99900?0??0?90?0? 76 | ?5?5?5?0?5?0?5?0? ?5?0?5?5?0?0?5?5? 77 | ? 5 78 | ?900??9??0?9090000 9??0?90?9?999???90 79 | 9????????????????? ?????????????????0 80 | ?????????????????9 ?????????????????0 81 | ?2?4?6?5?6?0?7?5? ?7?2?8?9?1?5?5?8? 82 | 0123456789???????? ????????9876543210 83 | ??0?99?21?59??08?7 ?99??067?1?1??9??0 84 | ???65???4?6???6?4? ??6??646?554???465 85 | 9?9959?50??0?90?5? ??9500??5500?9???? 86 | ?99999999999999999 999999999999999999 87 | ?783?5?846 ??48?2?15? 88 | 0????????????????? 999999999999999999 89 | 9????????????????? ?????????????????5 90 | ?????????????????5 9?9?9?9?9?9?9?9?9? 91 | ??73?7??780??3??99 5?076?4?16??7271?? 92 | ?5?3?2?5?6?2?8?1? ?3?1?6?1?1?3?8?6? 93 | 6?1??868?654?014 ???0???5?996??86 94 | ?????????????????5 9????????????????? 95 | ?1? ?6? 96 | 0????????????????? 9?9?9?9?9?9?9?9?9? 97 | ?99999999999999999 ?????????????????5 98 | ?????444?1?60??6?? ?004?1?6??????546? 99 | ?????????????????9 0????????????????? 100 | ?????????????????9 9?9?9?9?9?9?9?9?9? 101 | 999999999999999999 0????????????????? 102 | ?9?0?1?0?1?9?1?9? ?9?1?1?1?0?9?0?1? 103 | 5596417?76?????8?4 26????03????84813? 104 | 55559?999??5???00? 9???5??990?0?9555? 105 | ???54?6??545??66?? ?6???6?4???45??5?6 106 | 5??55?0?0??0500?50 ??????5050?5??50?5 107 | ?5?????3???8?3?3 ?24?5?09??160?73 108 | ?6?271319?3??? 7??839047?9??? 109 | ??7?6712?9?7??4?3? ??994??082126????8 110 | ??0?? ??5?? 111 | ?5?5?6?4?6?6?5?4? ?6?6?5?4?5?4?5?4? 112 | 610?6??56?5?????6? 6049541?0????55?50 113 | ?8 93 114 | ? 0 115 | 9????????????????? 0????????????????? 116 | ?0?9?0?0?0?0?9?0? ?9?9?0?9?9?0?9?9? 117 | 9876543210???????? ????????9876543210 118 | 0?905?0050??50?9?? 0??099059?999??05? 119 | ?????????????????9 9????????????????? 120 | 0123456789???????? ????????0123456789 121 | ?0?9?0?0?0?0?0?0? ?9?0?0?0?9?0?0?9? 122 | ?99999999999999999 9?9?9?9?9?9?9?9?9? 123 | ?????????????????0 0????????????????? 124 | ?6?9?1?4?2?4?1?9? ?8?7?6?4?5?5?8?1? 125 | ?5?2????22215?? 4?05?94???853?? 126 | ?????????????????5 ?????????????????9 127 | ?9?4?9?0?9?1?5?5? ?4?6?1?1?5?4?4?5? 128 | 4?45?55??5556?46?5 ??4???54?5?545?64? 129 | ?1?9?1?9?1?1?9?0? ?0?0?1?0?0?1?0?0? 130 | ?6?9?1?9?6?0?5?0? ?1?1?4?4?1?1?9?9? 131 | ?????????????????0 999999999999999999 132 | 0????????????????? 9????????????????? 133 | ?46??3??8?2?1? 2?9?020578?1?4 134 | ?????????????????0 9????????????????? 135 | ??99?0?0009?9????0 ?00900?9??9?0????0 136 | ?4?4?4?6?4?6?6?5? ?5?4?6?6?6?4?5?6? 137 | ?6? ?1? 138 | ?5?0?0?5?0?5?0?5? ?5?0?5?0?5?0?5?0? 139 | 10 ?5 140 | ?1?7?103?????34 259??6??9?9?9?? 141 | ?5?? ?7?? 142 | 9????????????????? 999999999999999999 143 | ?0? ?5? 144 | ?????????????????5 0????????????????? 145 | 02?????8?????????5 3???08?9397??5??60 146 | 3?8?1?????2???90?? ?10?65????8?6?19?9 147 | ????127??71?3?13?? ?45321?527?7?51??? 148 | 999999999999999999 ?????????????????9 149 | ?98??39?8?92?92??2 ??3?98?929?8??3?98 150 | 0??55???5?00000000 ??00???555??????00 151 | ?0??1?91?????????? 0?9???909?10?01?19 152 | ?99999999999999999 ?????????????????9 153 | 99??0?9?9??09?8?93 ?0?99???09?9?939?8 154 | ?359? 7863? 155 | ?0?0?0?0?5?0?5?0? ?5?0?5?5?5?0?5?5? 156 | 5???55?5?46???5444 4??4?654??4???54?? 157 | 999999999999999999 9????????????????? 158 | ?0?9?1?0?9?9?0?9? ?0?9?1?9?1?9?9?1? 159 | ?0?9?0?9?9?9?9?0? ?9?0?9?0?9?9?0?0? 160 | ?5 10 161 | ?????????????????5 999999999999999999 162 | ?????????????????5 ?????????????????0 163 | ???7?8??????97063? ??528??2?5?0?33??? 164 | 9?9?9?9?9?9?9?9?9? 0????????????????? 165 | ?????7???8???5 6?254?0781???5 166 | ??9????9?00?9??999 00?99?00?0???09?9? 167 | ?3? ?8? 168 | ?5?5?4?6?6?4?6?5? ?5?5?5?5?6?6?5?5? 169 | ?6?4?0?0?0?0?4?0? ?5?5?0?4?0?4?4?0? 170 | ?0?5?0?5?0?0?0?5? ?0?0?0?0?5?0?5?5? 171 | 6?06??????4?45?1? 6??80??173?548?02 172 | 999999999999999999 9?9?9?9?9?9?9?9?9? 173 | 00141?5??6???4?06? ?06?5???1?551??0?? 174 | ?8? ?3? 175 | ?????????????????0 ?????????????????5 176 | ?4? ?9? 177 | 9?9?9?9?9?9?9?9?9? ?????????????????9 178 | ?9?5?0?9?9?9?9?0? ?0?5?5?9?5?0?5?9? 179 | 999999999999999999 ?????????????????5 180 | ?5?0?0?5?5?0?9?5? ?0?9?0?9?0?9?0?9? 181 | 5??1?19???6?563 07?3?2?3?093??? 182 | 5 ? 183 | ?????????????????0 9?9?9?9?9?9?9?9?9? 184 | ?555?50??0????005? ?005?5?0?55???5550 185 | 994?905594????1?01 ?464??6??4?44?6450 186 | 49?1665?96064??9?9 9951?0?1?11???0?6? 187 | 9?9?9?9?9?9?9?9?9? 999999999999999999 188 | ??2??33?????0?050? 60??41?6?55??7??19 189 | ??857259??8??8??51 6???1????93?9??2?? 190 | 90?05?0??9??99???5 ?5?50??9099??5?05? 191 | ?1?9?9?9?1?9?0?1? ?9?1?9?9?1?0?1?0? 192 | ?? ?? 193 | ?7?73?9 7?2??30 194 | 999999999999999999 ?????????????????0 195 | 9????????????????? ?????????????????9 196 | ?0 ?5 197 | ???1563 ??171?6 198 | ?9?9?9?9?9?9?0?5? ?0?5?9?0?0?5?5?9? 199 | ?1?3?6?1?7?3?1?7? ?0?9?1?4?1?7?8?2? 200 | ?9?0?9?9?9?0?9?9? ?9?0?0?0?9?0?0?9? 201 | ?5?9?5?5?9?0?5?0? ?5?5?9?0?9?0?0?5? 202 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/B-large-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 19 20 2 | Case #2: 023 023 3 | Case #3: 0 0 4 | Case #4: 05 00 5 | Case #5: 099999999999999999 099999999999999999 6 | Case #6: 497923979130949329 500000154297053000 7 | Case #7: 999999999999999999 999999999999999999 8 | Case #8: 854963 890006 9 | Case #9: 5994 7007 10 | Case #10: 05090505000905050 05059999959099999 11 | Case #11: 500109703000900291 099569598492998680 12 | Case #12: 999999999999999999 999999999999999999 13 | Case #13: 099999999999999995 099999999999999999 14 | Case #14: 909090909090909095 909090909090909095 15 | Case #15: 000000000000000009 000000000000000009 16 | Case #16: 0067984999 0069101200 17 | Case #17: 950590505945999959 950590505950090050 18 | Case #18: 999999999999999999 999999999999999999 19 | Case #19: 000000000000000009 000000000000000005 20 | Case #20: 009999090999909999 010000000000090900 21 | Case #21: 306305077800073000 091292959579926979 22 | Case #22: 090 049 23 | Case #23: 00959191999199969 05000500060106060 24 | Case #24: 070 029 25 | Case #25: 100000000000000000 099999999999999999 26 | Case #26: 93 88 27 | Case #27: 018408003000 015699999939 28 | Case #28: 082839293999999179 082841308000406000 29 | Case #29: 500550550009509999 500550550050000505 30 | Case #30: 099999999999999999 100000000000000000 31 | Case #31: 099999999999999999 099999999999999999 32 | Case #32: 772207024099296999 772207024400020092 33 | Case #33: 105308731004987000 105308716872199945 34 | Case #34: 777000 752983 35 | Case #35: 000000000000000005 000000000000000005 36 | Case #36: 090119000010900001 090099011909991991 37 | Case #37: 0 0 38 | Case #38: 9 9 39 | Case #39: 12020409000506060 07979999919393999 40 | Case #40: 900090909000010100 119999999990919990 41 | Case #41: 09949991919691999 14000901010000090 42 | Case #42: 909090909090909090 909090909090909090 43 | Case #43: 9 9 44 | Case #44: 49593769974 90100006000 45 | Case #45: 36304022999 36304024007 46 | Case #46: 299969629 550600403 47 | Case #47: 099999999999999999 099999999999999999 48 | Case #48: 909090909090909090 909090909090909090 49 | Case #49: 0015789299879541 0019900009301000 50 | Case #50: 050066660005054404 050066555456494594 51 | Case #51: 04949695959596959 05060506050504050 52 | Case #52: 00050595909090959 00051000000000000 53 | Case #53: 091000090199000011 091000090199000011 54 | Case #54: 550005000000005050 550005000000005050 55 | Case #55: 439799999550929999 440100531948280700 56 | Case #56: 594999995999994988 600287988350000021 57 | Case #57: 000000000000000000 000000000000000000 58 | Case #58: 000989 001020 59 | Case #59: 999999999999999999 999999999999999999 60 | Case #60: 999999999999999999 999999999999999999 61 | Case #61: 12900000360 12900000344 62 | Case #62: 10090000000909090 09909090909990999 63 | Case #63: 01000901010901010 01000901009990999 64 | Case #64: 050 009 65 | Case #65: 00500 00099 66 | Case #66: 987654321000000000 987654320123456789 67 | Case #67: 029 070 68 | Case #68: 000000000000000010 000000000000000009 69 | Case #69: 909090909090909090 909090909090909090 70 | Case #70: 05050506060506050 04959695959494969 71 | Case #71: 000000000000000000 000000000000000000 72 | Case #72: 9815000900000 9809999999187 73 | Case #73: 111900000010100009 109999919991999991 74 | Case #74: 910000000909900090 909990090990990909 75 | Case #75: 05050500050005000 05009595909095959 76 | Case #76: 5 5 77 | Case #77: 990008999099090000 990009009099900090 78 | Case #78: 900000000000000000 900000000000000000 79 | Case #79: 000000000000000009 000000000000000010 80 | Case #80: 02949695969097959 07020809010505080 81 | Case #81: 012345678999999999 012345679876543210 82 | Case #82: 100099021059000807 099990679191999990 83 | Case #83: 006656464560006040 006656464554999465 84 | Case #84: 909959050000090050 909500995500999999 85 | Case #85: 999999999999999999 999999999999999999 86 | Case #86: 0783050846 0748929159 87 | Case #87: 099999999999999999 999999999999999999 88 | Case #88: 900000000000000005 900000000000000005 89 | Case #89: 909090909090909095 909090909090909095 90 | Case #90: 497397997809939999 500760401600727100 91 | Case #91: 05030205060208010 03919691919398969 92 | Case #92: 6010086806540014 6010086599969986 93 | Case #93: 900000000000000005 900000000000000005 94 | Case #94: 019 060 95 | Case #95: 099999999999999999 909090909090909090 96 | Case #96: 099999999999999999 099999999999999995 97 | Case #97: 000404440106000600 000401969999995469 98 | Case #98: 000000000000000009 000000000000000009 99 | Case #99: 909090909090909099 909090909090909099 100 | Case #100: 999999999999999999 099999999999999999 101 | Case #101: 09009190919991999 09010101000900010 102 | Case #102: 559641707600000804 269999039999848139 103 | Case #103: 555599999995999009 900050099000095550 104 | Case #104: 060546640545006600 060546640544599596 105 | Case #105: 500550090990500950 500550505005005005 106 | Case #106: 0500000300080303 0249590999160973 107 | Case #107: 76027131903000 75983904799999 108 | Case #108: 007967129997994939 009940008212600008 109 | Case #109: 00099 00500 110 | Case #110: 05959694969695949 06060504050405040 111 | Case #111: 610060056050000060 604954190999955950 112 | Case #112: 88 93 113 | Case #113: 0 0 114 | Case #114: 900000000000000000 099999999999999999 115 | Case #115: 10090000000009000 09999099999099999 116 | Case #116: 987654321000000000 987654319876543210 117 | Case #117: 009059005099509999 009099059099900050 118 | Case #118: 900000000000000009 900000000000000009 119 | Case #119: 012345678999999999 012345680123456789 120 | Case #120: 10090000000000000 09909090999090999 121 | Case #121: 999999999999999999 999999999999999999 122 | Case #122: 000000000000000000 000000000000000000 123 | Case #123: 06999194929491999 08070604050508010 124 | Case #124: 450299992221599 450509400085300 125 | Case #125: 000000000000000005 000000000000000009 126 | Case #126: 09040900090105050 04969191959494959 127 | Case #127: 404505540555604605 404505540555459649 128 | Case #128: 01090109010109000 00909190909190909 129 | Case #129: 06999199969095909 11010404010109090 130 | Case #130: 999999999999999990 999999999999999999 131 | Case #131: 099999999999999999 900000000000000000 132 | Case #132: 24699399892919 24900205780104 133 | Case #133: 900000000000000000 900000000000000000 134 | Case #134: 099990900099999990 100900090090000000 135 | Case #135: 04949496949696959 05040606060405060 136 | Case #136: 060 019 137 | Case #137: 05000095909590959 05000500050005000 138 | Case #138: 10 05 139 | Case #139: 219791039999934 259006009090900 140 | Case #140: 0599 0700 141 | Case #141: 999999999999999999 999999999999999999 142 | Case #142: 009 050 143 | Case #143: 000000000000000005 000000000000000005 144 | Case #144: 029999989999999995 300008093970050060 145 | Case #145: 308919999929999099 310065000080601909 146 | Case #146: 045312799719391399 045321052707051000 147 | Case #147: 999999999999999999 999999999999999999 148 | Case #148: 098003908092092002 093998992998993998 149 | Case #149: 009559995900000000 010000055500000000 150 | Case #150: 009010910000000000 009010909910901919 151 | Case #151: 099999999999999999 099999999999999999 152 | Case #152: 990000909000908093 909999990999993998 153 | Case #153: 83590 78639 154 | Case #154: 10000000050005000 05909595959095959 155 | Case #155: 500055050460005444 499496549949995499 156 | Case #156: 999999999999999999 999999999999999999 157 | Case #157: 00090110090900090 00090109919999919 158 | Case #158: 10090009090909000 09909990999990909 159 | Case #159: 05 10 160 | Case #160: 999999999999999995 999999999999999999 161 | Case #161: 000000000000000005 000000000000000000 162 | Case #162: 005708000000970630 005289929590933999 163 | Case #163: 909090909090909090 099999999999999999 164 | Case #164: 60254707789995 60254707810005 165 | Case #165: 009989999009999999 009990000000009090 166 | Case #166: 039 080 167 | Case #167: 05050496969496959 05050505060605050 168 | Case #168: 06040000000004000 05959094909494909 169 | Case #169: 00059095909090959 00100000050005050 170 | Case #170: 60069999994945919 60080001730548002 171 | Case #171: 999999999999999999 999999999999999999 172 | Case #172: 001419599699949069 006050001055100000 173 | Case #173: 080 039 174 | Case #174: 000000000000000000 000000000000000005 175 | Case #175: 049 090 176 | Case #176: 909090909090909099 909090909090909099 177 | Case #177: 09959099999999909 10050509050005090 178 | Case #178: 999999999999999999 999999999999999995 179 | Case #179: 05000005050009050 00999099909990999 180 | Case #180: 500101900060563 079392939093999 181 | Case #181: 5 5 182 | Case #182: 909090909090909090 909090909090909090 183 | Case #183: 055595099099990059 100505000550005550 184 | Case #184: 994090559400001001 946499699494496450 185 | Case #185: 499166599606499999 995100010110000060 186 | Case #186: 999999999999999999 999999999999999999 187 | Case #187: 602043300000000500 602041969559979919 188 | Case #188: 608572599989989951 608610000930900200 189 | Case #189: 900050000900990005 859509990999959059 190 | Case #190: 11090909010900010 09919999919091909 191 | Case #191: 00 00 192 | Case #192: 7727329 7727330 193 | Case #193: 999999999999999999 999999999999999990 194 | Case #194: 900000000000000009 900000000000000009 195 | Case #195: 00 05 196 | Case #196: 0021563 0017196 197 | Case #197: 09999999999990959 10050900000505090 198 | Case #198: 01030601070301070 00999194919798929 199 | Case #199: 09000999999099999 09001000090000090 200 | Case #200: 05090505090005000 05059990999090959 201 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/B-small-practice.in: -------------------------------------------------------------------------------- 1 | 200 2 | 1? 2? 3 | ?2? ??3 4 | ? ? 5 | ?5 ?0 6 | 99 ?0 7 | ?6? ?1? 8 | ?1? ?5? 9 | ?6? 4?? 10 | ?0 9? 11 | 2?4 ??5 12 | 99 ?9 13 | 2?6 ??? 14 | 0? 9? 15 | ??? ??3 16 | ?3? 44? 17 | ?9? ??5 18 | 9? 99 19 | 8?7 ??0 20 | 0?? 9?9 21 | ?4? ?0? 22 | ?7? ?3? 23 | 4?9 15? 24 | 9? ?9 25 | ?92 ?2? 26 | 0? 99 27 | 02? 3?0 28 | ?9? ?3? 29 | ?0? ?5? 30 | ?? ?9 31 | 0?? ?21 32 | ?? 9? 33 | ?9 ?5 34 | ?5? ?1? 35 | ??? 2?? 36 | 0 ? 37 | 96? ?79 38 | ?0 ?9 39 | ?1? ?6? 40 | ??? 1?1 41 | 9? ?? 42 | 97? ?92 43 | 310 ??5 44 | ? 0 45 | ?9? ?4? 46 | 778 ??? 47 | ?8 93 48 | ?0? ?4? 49 | 11? 0?? 50 | ?6? ?0? 51 | ?1? 263 52 | ?0 99 53 | 3?6 3?5 54 | ?92 ??9 55 | ??? 5?4 56 | ?0 ?5 57 | 12? 2?5 58 | ?3? ?8? 59 | 4?? ??4 60 | ?86 6?? 61 | 99 0? 62 | ??9 6?1 63 | 49? 04? 64 | 9 ? 65 | ?5 99 66 | ?2? ?7? 67 | 0? ?5 68 | 387 0?? 69 | 9?8 ?93 70 | ?2? ?6? 71 | 7?2 ?7? 72 | ?6? ?2? 73 | ?3? ??0 74 | ?2? 3?? 75 | ?9 ?? 76 | ?9? ?5? 77 | 76? ??5 78 | ?92 9?8 79 | ?0 ?? 80 | 3?? 5?9 81 | ?3? ?9? 82 | ?04 ?97 83 | ?83 5?? 84 | ??9 09? 85 | 0? ?0 86 | 9? ?0 87 | 99 ?? 88 | ??0 ??9 89 | 0? ?9 90 | ?9 99 91 | ?8? ?3? 92 | 3?8 ?10 93 | ?5? ?0? 94 | ?92 ??3 95 | 9?9 ??0 96 | 5 ? 97 | ?? ?5 98 | ?1? ?65 99 | ?21 67? 100 | 56? 2?? 101 | 6?? 35? 102 | 0?3 2?9 103 | 0?4 ?7? 104 | 8?? ?94 105 | ?76 ?2? 106 | 94? ?36 107 | 49? ??? 108 | ??6 ?22 109 | 60? ?4? 110 | 99 9? 111 | 3?? ??? 112 | ?7? ?1? 113 | ??7 4?1 114 | ?3? 727 115 | ? 5 116 | ?5 0? 117 | ??2 ?98 118 | 9?8 ?92 119 | ?8? ?2? 120 | ?0? 46? 121 | ?? ?0 122 | 959 ?1? 123 | ?94 03? 124 | 0? ?? 125 | ?05 927 126 | ?0? 99? 127 | ?99 1?? 128 | ?1? ?7? 129 | ??? ??7 130 | ??0 9?9 131 | 9?? ??? 132 | 9? ?5 133 | ?59 1?1 134 | ?4? ?9? 135 | ?5 9? 136 | ?2? ?8? 137 | ??? 35? 138 | ??2 40? 139 | ?4? 645 140 | ??2 0?9 141 | 5?? 68? 142 | 9? 0? 143 | ?9 0? 144 | ?7? ?2? 145 | 7?5 ?06 146 | ?2? ?26 147 | 80? 6?? 148 | ?98 ??3 149 | 1?? 165 150 | ?99 ??0 151 | ?5 10 152 | ?? ?? 153 | 70? ?2? 154 | 8?1 ??4 155 | ?9 ?0 156 | ?75 ??3 157 | 99? ?0? 158 | ??4 ?71 159 | ??? 819 160 | 57? ?26 161 | ?5 ?? 162 | ?5? ?9? 163 | 104 3?? 164 | ?0? ?6? 165 | 282 4?6 166 | ??0 ?99 167 | ?8? 50? 168 | ?9 9? 169 | 504 ??7 170 | ?? 0? 171 | ?5 ?9 172 | ?3? ?7? 173 | ??7 5?0 174 | ??? 640 175 | ??7 ?4? 176 | ?? 99 177 | 10 ?5 178 | ??? 2?9 179 | 3?7 76? 180 | 159 4?? 181 | 7?6 ??0 182 | ?4? ?8? 183 | ??? 8?? 184 | 99 ?5 185 | 18? ?3? 186 | 17? 5?? 187 | ?0 0? 188 | 93 ?8 189 | ?8? ?4? 190 | ??? 24? 191 | ??3 ??9 192 | ?8? 104 193 | ??8 090 194 | ??3 ?98 195 | ??? ??4 196 | ?4? ??2 197 | 611 66? 198 | ?93 9?8 199 | ? 9 200 | 7?9 650 201 | ??? ??? 202 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/B-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 19 20 2 | Case #2: 023 023 3 | Case #3: 0 0 4 | Case #4: 05 00 5 | Case #5: 99 90 6 | Case #6: 060 019 7 | Case #7: 019 050 8 | Case #8: 460 460 9 | Case #9: 90 90 10 | Case #10: 204 205 11 | Case #11: 99 99 12 | Case #12: 206 206 13 | Case #13: 09 90 14 | Case #14: 003 003 15 | Case #15: 439 440 16 | Case #16: 095 095 17 | Case #17: 99 99 18 | Case #18: 807 810 19 | Case #19: 099 909 20 | Case #20: 040 009 21 | Case #21: 070 039 22 | Case #22: 409 159 23 | Case #23: 99 99 24 | Case #24: 092 120 25 | Case #25: 09 99 26 | Case #26: 029 300 27 | Case #27: 099 130 28 | Case #28: 009 050 29 | Case #29: 09 09 30 | Case #30: 021 021 31 | Case #31: 90 90 32 | Case #32: 09 05 33 | Case #33: 050 019 34 | Case #34: 200 200 35 | Case #35: 0 0 36 | Case #36: 969 979 37 | Case #37: 10 09 38 | Case #38: 019 060 39 | Case #39: 101 101 40 | Case #40: 90 90 41 | Case #41: 979 992 42 | Case #42: 310 305 43 | Case #43: 0 0 44 | Case #44: 090 049 45 | Case #45: 778 778 46 | Case #46: 88 93 47 | Case #47: 009 040 48 | Case #48: 110 099 49 | Case #49: 069 100 50 | Case #50: 219 263 51 | Case #51: 90 99 52 | Case #52: 306 305 53 | Case #53: 092 089 54 | Case #54: 504 504 55 | Case #55: 00 05 56 | Case #56: 129 205 57 | Case #57: 039 080 58 | Case #58: 404 404 59 | Case #59: 686 686 60 | Case #60: 99 09 61 | Case #61: 599 601 62 | Case #62: 490 049 63 | Case #63: 9 9 64 | Case #64: 95 99 65 | Case #65: 029 070 66 | Case #66: 05 05 67 | Case #67: 387 099 68 | Case #68: 988 993 69 | Case #69: 029 060 70 | Case #70: 772 772 71 | Case #71: 060 029 72 | Case #72: 030 030 73 | Case #73: 320 320 74 | Case #74: 09 09 75 | Case #75: 090 059 76 | Case #76: 765 765 77 | Case #77: 992 988 78 | Case #78: 00 00 79 | Case #79: 399 509 80 | Case #80: 130 099 81 | Case #81: 104 097 82 | Case #82: 583 583 83 | Case #83: 099 099 84 | Case #84: 00 00 85 | Case #85: 90 90 86 | Case #86: 99 99 87 | Case #87: 010 009 88 | Case #88: 09 09 89 | Case #89: 99 99 90 | Case #90: 080 039 91 | Case #91: 308 310 92 | Case #92: 050 009 93 | Case #93: 092 093 94 | Case #94: 909 910 95 | Case #95: 5 5 96 | Case #96: 05 05 97 | Case #97: 110 065 98 | Case #98: 721 679 99 | Case #99: 560 299 100 | Case #100: 600 359 101 | Case #101: 093 209 102 | Case #102: 074 074 103 | Case #103: 894 894 104 | Case #104: 076 120 105 | Case #105: 940 936 106 | Case #106: 490 490 107 | Case #107: 026 022 108 | Case #108: 609 640 109 | Case #109: 99 99 110 | Case #110: 300 300 111 | Case #111: 079 110 112 | Case #112: 397 401 113 | Case #113: 730 727 114 | Case #114: 5 5 115 | Case #115: 05 05 116 | Case #116: 102 098 117 | Case #117: 988 992 118 | Case #118: 089 120 119 | Case #119: 500 469 120 | Case #120: 00 00 121 | Case #121: 959 919 122 | Case #122: 094 039 123 | Case #123: 00 00 124 | Case #124: 905 927 125 | Case #125: 909 990 126 | Case #126: 199 199 127 | Case #127: 110 079 128 | Case #128: 007 007 129 | Case #129: 910 909 130 | Case #130: 900 900 131 | Case #131: 95 95 132 | Case #132: 159 161 133 | Case #133: 049 090 134 | Case #134: 95 95 135 | Case #135: 120 089 136 | Case #136: 350 350 137 | Case #137: 402 402 138 | Case #138: 645 645 139 | Case #139: 012 009 140 | Case #140: 599 680 141 | Case #141: 90 09 142 | Case #142: 09 09 143 | Case #143: 070 029 144 | Case #144: 705 706 145 | Case #145: 026 026 146 | Case #146: 800 699 147 | Case #147: 098 093 148 | Case #148: 165 165 149 | Case #149: 099 100 150 | Case #150: 05 10 151 | Case #151: 00 00 152 | Case #152: 709 720 153 | Case #153: 801 804 154 | Case #154: 09 10 155 | Case #155: 075 073 156 | Case #156: 990 909 157 | Case #157: 074 071 158 | Case #158: 819 819 159 | Case #159: 570 526 160 | Case #160: 05 05 161 | Case #161: 059 090 162 | Case #162: 104 300 163 | Case #163: 100 069 164 | Case #164: 282 406 165 | Case #165: 100 099 166 | Case #166: 489 500 167 | Case #167: 99 99 168 | Case #168: 504 507 169 | Case #169: 00 00 170 | Case #170: 05 09 171 | Case #171: 039 070 172 | Case #172: 497 500 173 | Case #173: 640 640 174 | Case #174: 047 047 175 | Case #175: 99 99 176 | Case #176: 10 05 177 | Case #177: 209 209 178 | Case #178: 397 760 179 | Case #179: 159 400 180 | Case #180: 706 710 181 | Case #181: 049 080 182 | Case #182: 800 800 183 | Case #183: 99 95 184 | Case #184: 180 139 185 | Case #185: 179 500 186 | Case #186: 00 00 187 | Case #187: 93 88 188 | Case #188: 080 049 189 | Case #189: 240 240 190 | Case #190: 013 009 191 | Case #191: 089 104 192 | Case #192: 088 090 193 | Case #193: 093 098 194 | Case #194: 004 004 195 | Case #195: 042 042 196 | Case #196: 611 660 197 | Case #197: 993 988 198 | Case #198: 9 9 199 | Case #199: 709 650 200 | Case #200: 000 000 201 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/C-large-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 1 2 | Case #2: 0 3 | Case #3: 0 4 | Case #4: 750 5 | Case #5: 196 6 | Case #6: 139 7 | Case #7: 450 8 | Case #8: 233 9 | Case #9: 59 10 | Case #10: 580 11 | Case #11: 222 12 | Case #12: 308 13 | Case #13: 37 14 | Case #14: 84 15 | Case #15: 176 16 | Case #16: 80 17 | Case #17: 223 18 | Case #18: 19 19 | Case #19: 108 20 | Case #20: 560 21 | Case #21: 2 22 | Case #22: 59 23 | Case #23: 846 24 | Case #24: 26 25 | Case #25: 66 26 | Case #26: 38 27 | Case #27: 107 28 | Case #28: 74 29 | Case #29: 6 30 | Case #30: 181 31 | Case #31: 112 32 | Case #32: 268 33 | Case #33: 327 34 | Case #34: 265 35 | Case #35: 50 36 | Case #36: 720 37 | Case #37: 749 38 | Case #38: 162 39 | Case #39: 177 40 | Case #40: 61 41 | Case #41: 72 42 | Case #42: 559 43 | Case #43: 42 44 | Case #44: 57 45 | Case #45: 70 46 | Case #46: 65 47 | Case #47: 92 48 | Case #48: 13 49 | Case #49: 39 50 | Case #50: 54 51 | Case #51: 0 52 | Case #52: 64 53 | Case #53: 170 54 | Case #54: 115 55 | Case #55: 121 56 | Case #56: 119 57 | Case #57: 197 58 | Case #58: 145 59 | Case #59: 101 60 | Case #60: 77 61 | Case #61: 6 62 | Case #62: 214 63 | Case #63: 380 64 | Case #64: 60 65 | Case #65: 24 66 | Case #66: 46 67 | Case #67: 257 68 | Case #68: 28 69 | Case #69: 365 70 | Case #70: 143 71 | Case #71: 135 72 | Case #72: 90 73 | Case #73: 0 74 | Case #74: 74 75 | Case #75: 748 76 | Case #76: 385 77 | Case #77: 161 78 | Case #78: 64 79 | Case #79: 900 80 | Case #80: 68 81 | Case #81: 70 82 | Case #82: 68 83 | Case #83: 24 84 | Case #84: 329 85 | Case #85: 575 86 | Case #86: 248 87 | Case #87: 18 88 | Case #88: 54 89 | Case #89: 69 90 | Case #90: 12 91 | Case #91: 101 92 | Case #92: 297 93 | Case #93: 50 94 | Case #94: 38 95 | Case #95: 150 96 | Case #96: 131 97 | Case #97: 270 98 | Case #98: 74 99 | Case #99: 52 100 | Case #100: 93 101 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/C-small-practice.in: -------------------------------------------------------------------------------- 1 | 100 2 | 3 3 | HYDROCARBON COMBUSTION 4 | QUAIL COMBUSTION 5 | QUAIL BEHAVIOR 6 | 3 7 | CODE JAM 8 | SPACE JAM 9 | PEARL JAM 10 | 2 11 | INTERGALACTIC PLANETARY 12 | PLANETARY INTERGALACTIC 13 | 15 14 | BJ CY 15 | BJ OU 16 | EB YM 17 | EB ZO 18 | FM CY 19 | FM YM 20 | LN PI 21 | LN QW 22 | MS QL 23 | MS QW 24 | NG PI 25 | SS AU 26 | SS OU 27 | YS QL 28 | YS ZO 29 | 15 30 | AF CX 31 | UV CX 32 | CL HY 33 | FX HY 34 | AF IK 35 | CP IK 36 | TM PI 37 | FX SP 38 | LJ SP 39 | CL VS 40 | TM VS 41 | IM XI 42 | UV XI 43 | IM XU 44 | LJ XU 45 | 11 46 | GE IV 47 | GE VV 48 | GE XG 49 | HQ AD 50 | HQ QI 51 | IB TX 52 | NF YV 53 | OZ QI 54 | OZ YC 55 | YW IV 56 | YW VV 57 | 10 58 | GF CH 59 | RO GI 60 | YB GI 61 | TD HI 62 | YG HI 63 | IZ NB 64 | BQ TA 65 | GF TP 66 | GR WG 67 | IZ ZD 68 | 12 69 | PJ QK 70 | IF RU 71 | OB ZA 72 | KP QK 73 | RT FN 74 | OG ON 75 | QK ZA 76 | KF BR 77 | EP CO 78 | KF CO 79 | EP FN 80 | EP BR 81 | 16 82 | NS BL 83 | VA BL 84 | LO HK 85 | NS HY 86 | WT HY 87 | HV IK 88 | HV JA 89 | JY JA 90 | MJ LI 91 | VA LI 92 | WT SB 93 | LO WY 94 | ON WY 95 | JY ZG 96 | ON ZV 97 | PJ ZV 98 | 15 99 | RG CN 100 | GB FM 101 | YD FM 102 | TV FV 103 | VN FV 104 | XP FV 105 | RG HN 106 | XP HO 107 | YB HO 108 | YD HO 109 | FE LY 110 | YB QI 111 | YD QI 112 | VW RP 113 | RG TB 114 | 13 115 | GN CS 116 | GU HU 117 | VF MQ 118 | GU TJ 119 | CB VJ 120 | VF VJ 121 | GN XK 122 | GU XK 123 | GN XS 124 | VF XS 125 | GU YO 126 | CB YV 127 | VF ZM 128 | 15 129 | LB AS 130 | XV AS 131 | KF DQ 132 | YA DQ 133 | KF DU 134 | XV DU 135 | IO JS 136 | LT JS 137 | CP NG 138 | YA NG 139 | CP UM 140 | IO UM 141 | LB XC 142 | SF XC 143 | LT ZO 144 | 11 145 | XW IC 146 | AO PV 147 | SA AY 148 | IX BC 149 | ZZ EE 150 | ND KL 151 | ZZ LG 152 | YM EE 153 | AO KL 154 | UO KL 155 | SA PV 156 | 15 157 | BU AI 158 | BU RI 159 | CY DZ 160 | CY XA 161 | GI DZ 162 | GI LH 163 | GN NK 164 | MV FW 165 | MV LH 166 | SE FW 167 | SE NK 168 | TE AI 169 | TE XA 170 | XE LT 171 | XE RI 172 | 8 173 | AD DW 174 | UG DW 175 | UG FH 176 | TJ HI 177 | AV JL 178 | OD PI 179 | AI RM 180 | EL SV 181 | 16 182 | EG DE 183 | FH FG 184 | GY FG 185 | DA IO 186 | KJ IO 187 | DA KQ 188 | DD KQ 189 | DA ME 190 | KJ ME 191 | FE MV 192 | AS PN 193 | SI PQ 194 | PS UL 195 | FH XF 196 | AE YE 197 | PY ZM 198 | 12 199 | AO DA 200 | AW EF 201 | AW SH 202 | FT EF 203 | FT SH 204 | JI NF 205 | OH EF 206 | OH IC 207 | PS NF 208 | UJ NF 209 | WX DH 210 | ZM QE 211 | 16 212 | BD MH 213 | CI MH 214 | KT MH 215 | NJ MH 216 | BD QB 217 | CI QB 218 | KT QB 219 | NJ QB 220 | BD SG 221 | CI SG 222 | KT SG 223 | NJ SG 224 | BD WD 225 | CI WD 226 | KT WD 227 | NJ WD 228 | 14 229 | BINOMIAL DECISION 230 | RANK ORDER 231 | RANK DECISION 232 | BINOMIAL EXPANSIONS 233 | RANK RECONSTRUCTION 234 | BINOMIAL DECOMPOSITIONS 235 | RANK DECOMPOSITIONS 236 | RANK CYCLES 237 | BINOMIAL ORDER 238 | BINOMIAL PACKINGS 239 | RANK EXPANSIONS 240 | BINOMIAL RECONSTRUCTION 241 | BINOMIAL CYCLES 242 | RANK PACKINGS 243 | 11 244 | OB AU 245 | EG LS 246 | QC LS 247 | RM LS 248 | AE OG 249 | MS OG 250 | SN OG 251 | AE RD 252 | FV RD 253 | MS RD 254 | QN RD 255 | 16 256 | VN BX 257 | NQ DT 258 | TT DT 259 | DR LI 260 | EM LI 261 | DR LK 262 | NQ LK 263 | DR MA 264 | TT MA 265 | TN PM 266 | RG SP 267 | DR XN 268 | LB XN 269 | TT XN 270 | VN XN 271 | DR YL 272 | 14 273 | FV DH 274 | VA PB 275 | VA HA 276 | FV IJ 277 | VA QT 278 | QY QT 279 | BN DH 280 | FV SZ 281 | VA DH 282 | JN SZ 283 | DZ HA 284 | IA DH 285 | FV ME 286 | IA IJ 287 | 13 288 | FQ MA 289 | HP AI 290 | HP TT 291 | LK AI 292 | LR TT 293 | MB JQ 294 | MB KA 295 | MB UY 296 | OB WI 297 | TN TT 298 | TN XH 299 | TO WI 300 | UI QM 301 | 16 302 | ZI SE 303 | HS EL 304 | ZI XF 305 | HS HK 306 | HS SE 307 | ZI EL 308 | ZI HK 309 | HS UU 310 | ZI CO 311 | HS XF 312 | HS HE 313 | ZI HE 314 | HS CO 315 | ZI UU 316 | ZI VA 317 | HS VA 318 | 15 319 | AT GK 320 | AT JB 321 | GK GK 322 | GK TK 323 | HX DM 324 | HX UX 325 | LX TK 326 | LX UX 327 | NP AN 328 | NP JB 329 | NU IN 330 | XP DM 331 | XP JI 332 | YI IN 333 | YI JI 334 | 15 335 | CK HH 336 | PE PB 337 | RC VF 338 | ZL QL 339 | WC GB 340 | RI FS 341 | RP GB 342 | RC CD 343 | WC CD 344 | RP PB 345 | CK FS 346 | QD HH 347 | ZL VF 348 | PE FQ 349 | RI FQ 350 | 16 351 | KE EH 352 | KL EH 353 | KL VR 354 | CP WB 355 | RX BJ 356 | CP BJ 357 | RX EH 358 | CP VR 359 | RX WB 360 | RX VR 361 | KL WB 362 | KE VR 363 | KE WB 364 | KL BJ 365 | KE BJ 366 | CP EH 367 | 15 368 | AJ BD 369 | LL BD 370 | AJ CM 371 | DA CM 372 | BS IS 373 | SR IS 374 | SR MT 375 | VG MT 376 | BS OH 377 | CO OH 378 | BE RS 379 | VG RS 380 | BE TT 381 | LL TT 382 | DA UW 383 | 16 384 | MC BC 385 | OC DX 386 | NZ IC 387 | TD IP 388 | KE JQ 389 | IW JU 390 | OC JU 391 | EY LK 392 | UZ LK 393 | YJ LK 394 | EY NI 395 | QA PP 396 | IG VZ 397 | OC WC 398 | UZ WC 399 | LH ZE 400 | 8 401 | EP BQ 402 | EP CP 403 | UO CP 404 | FF DY 405 | IE DY 406 | UO DY 407 | PA YW 408 | UO YW 409 | 15 410 | WF FO 411 | JI FZ 412 | JI KE 413 | VB KE 414 | DG PF 415 | VB PF 416 | CJ WM 417 | LE WM 418 | LE ZB 419 | KQ ZH 420 | PW ZH 421 | EU ZP 422 | KQ ZP 423 | PW ZU 424 | WF ZU 425 | 16 426 | BI FR 427 | TR RG 428 | AL GA 429 | SP MQ 430 | FR RG 431 | ML WS 432 | SP BX 433 | YE GA 434 | SA MQ 435 | FR VB 436 | VF FR 437 | SP WS 438 | RS RG 439 | ML FR 440 | GD IM 441 | LS BX 442 | 15 443 | FU CK 444 | FU UK 445 | JM JZ 446 | JM XA 447 | MJ DN 448 | MJ JZ 449 | NY DN 450 | RG AD 451 | RG DS 452 | RG OV 453 | RG UV 454 | RX NJ 455 | RY DN 456 | SO UV 457 | VZ UK 458 | 15 459 | FQ VZ 460 | GT VZ 461 | WL QJ 462 | FQ EP 463 | BN RC 464 | ZC RC 465 | ZC JY 466 | WR LT 467 | GT FX 468 | JM QJ 469 | SO JY 470 | BN EP 471 | JM FZ 472 | WR FZ 473 | WL FX 474 | 14 475 | KC EJ 476 | PZ XX 477 | QH XX 478 | KC CR 479 | XL GT 480 | AP VZ 481 | ZI VZ 482 | XQ VZ 483 | PZ DA 484 | XQ FL 485 | IU GT 486 | KC DS 487 | WM XX 488 | OA GT 489 | 10 490 | GS DP 491 | GS OX 492 | GZ DP 493 | GZ EE 494 | NJ AW 495 | NS SW 496 | QJ LZ 497 | QJ QK 498 | VE LZ 499 | ZC QK 500 | 14 501 | EI EP 502 | ZX EP 503 | WJ JW 504 | SG LQ 505 | KO PV 506 | ZX PV 507 | KO TS 508 | WY TS 509 | SG TU 510 | SG VW 511 | SG YF 512 | BO YV 513 | SG YV 514 | ZX YV 515 | 14 516 | BZ LM 517 | MA FG 518 | LY CG 519 | LY EB 520 | MA UL 521 | JR LI 522 | JE TS 523 | HX TS 524 | IT RX 525 | OD RQ 526 | IT RQ 527 | IJ LK 528 | VU LI 529 | MA TL 530 | 9 531 | EMBEDDED SIMILARITY 532 | EMBEDDED COVERING 533 | EMBEDDED ROUTING 534 | ROUTING SPACE 535 | ISOPERIMETRIC CONVERGENCE 536 | ISING BUNDLES 537 | EMBEDDED CHARACTERS 538 | ISOPERIMETRIC ARITHMETIC 539 | EMBEDDED CONVERGENCE 540 | 16 541 | KA BR 542 | SI CM 543 | SI FJ 544 | ZK FJ 545 | YU NM 546 | ZK NM 547 | IL NX 548 | CI OE 549 | IY OS 550 | IY PA 551 | OE PH 552 | NB RJ 553 | MM TE 554 | CS UZ 555 | PT VZ 556 | SI VZ 557 | 15 558 | PO CN 559 | XZ CN 560 | MG FL 561 | QX FL 562 | MG FR 563 | ZN FR 564 | QF GB 565 | XZ GB 566 | QZ OJ 567 | ZN OJ 568 | QX TR 569 | QZ WH 570 | SP WH 571 | PO XD 572 | SP XD 573 | 16 574 | MI CA 575 | RY CS 576 | UB CS 577 | TB DC 578 | OI JD 579 | CZ KL 580 | NE NW 581 | YA OZ 582 | GV QB 583 | CZ QE 584 | KC QE 585 | EW RU 586 | CQ WV 587 | TB YT 588 | UB YT 589 | RY ZG 590 | 11 591 | EY UU 592 | GU LK 593 | GU UU 594 | GU VP 595 | IM RJ 596 | IM RK 597 | JP LK 598 | JP VP 599 | YX MB 600 | ZC LK 601 | ZC UU 602 | 16 603 | BI ES 604 | HZ CL 605 | HZ GK 606 | HZ JH 607 | HZ NT 608 | HZ OQ 609 | HZ SU 610 | HZ VN 611 | ST CL 612 | ST GK 613 | ST NT 614 | ST VN 615 | YR MA 616 | ZN ES 617 | ZN FM 618 | ZN VN 619 | 10 620 | ET DE 621 | HD KC 622 | HD OK 623 | HD QQ 624 | NE MU 625 | VA MH 626 | VA RK 627 | YO LA 628 | YO OK 629 | YO RK 630 | 16 631 | BH DO 632 | BH TY 633 | BJ QL 634 | BJ YG 635 | HA PU 636 | IQ BE 637 | IQ UI 638 | LM BE 639 | NT BE 640 | NT EF 641 | PH PE 642 | UZ KI 643 | VY ZI 644 | VZ DO 645 | VZ TY 646 | VZ YG 647 | 15 648 | BF KL 649 | BF MS 650 | BF RP 651 | CP RP 652 | CP ZZ 653 | CT FR 654 | OR RP 655 | OR UZ 656 | OR ZZ 657 | PK AY 658 | PK BV 659 | SX KL 660 | SX RP 661 | VF BV 662 | VF FR 663 | 12 664 | CS BP 665 | LH BP 666 | LH GW 667 | CA HY 668 | MI JR 669 | NF NS 670 | IX OL 671 | JR PI 672 | NF PI 673 | CA SU 674 | LH XG 675 | CS ZF 676 | 15 677 | BX HS 678 | GT GV 679 | HG AF 680 | HG IZ 681 | HG QG 682 | LV BW 683 | LV CW 684 | RL SE 685 | UR CW 686 | VW ES 687 | XH QG 688 | YD AF 689 | YD BW 690 | YD QE 691 | ZP AF 692 | 15 693 | IM BI 694 | IM AM 695 | JF SU 696 | DN BI 697 | TX AM 698 | SC DF 699 | CA JJ 700 | TX MX 701 | SC BI 702 | CA OJ 703 | XE YF 704 | DN AM 705 | SV JJ 706 | IM DF 707 | XD TM 708 | 16 709 | HU TE 710 | UD RD 711 | TY FH 712 | HU RD 713 | VV UU 714 | TY UU 715 | HU UU 716 | OS UU 717 | OS TY 718 | HU TQ 719 | UL FH 720 | TY TY 721 | TY SK 722 | UD SK 723 | LI TE 724 | OS TE 725 | 15 726 | ABELIAN ABSTRACTION 727 | INDISTINGUISHABILITY ABSTRACTION 728 | ABELIAN ALGEBRA 729 | ABSTRACT ALGEBRA 730 | ABSTRACT ALGEBRAS 731 | ABSTRACTION ALGEBRAS 732 | ABSTRACTION ALGORITHMS 733 | ACCESS ALGORITHMS 734 | ACCESS ALIGNMENT 735 | ACYCLIC ALIGNMENT 736 | ACYCLIC ALLOCATION 737 | Q PSEUDOAPPROXIMATIONS 738 | SUBDIFFERENTIABILITY PSEUDOAPPROXIMATIONS 739 | INDISTINGUISHABILITY PSEUDOTRIANGULATIONS 740 | SUBDIFFERENTIABILITY PSEUDOTRIANGULATIONS 741 | 15 742 | GQ EL 743 | MA EP 744 | IG GM 745 | JL GM 746 | WM GM 747 | BP HR 748 | CG IZ 749 | GQ MZ 750 | JL MZ 751 | WM MZ 752 | GQ OE 753 | XN OE 754 | SG OQ 755 | IG XP 756 | JL XP 757 | 16 758 | MJ GE 759 | MJ OZ 760 | MJ WO 761 | MJ ZF 762 | TN GE 763 | TN OZ 764 | TN WO 765 | TN ZF 766 | WX GE 767 | WX OZ 768 | WX WO 769 | WX ZF 770 | XI GE 771 | XI OZ 772 | XI WO 773 | XI ZF 774 | 15 775 | PI EJ 776 | PW PW 777 | ZK RQ 778 | RZ SC 779 | ZK MY 780 | SG ED 781 | ZP EJ 782 | TS PW 783 | AA ED 784 | PI EQ 785 | PW PO 786 | ZP SC 787 | SG EQ 788 | RZ MY 789 | TS RQ 790 | 15 791 | GM ER 792 | GM JA 793 | GY FF 794 | GY VQ 795 | NG XF 796 | OG JA 797 | OG XF 798 | PW CZ 799 | PW VQ 800 | SO FF 801 | SW CZ 802 | SW FF 803 | SW TP 804 | SW VQ 805 | VI HW 806 | 15 807 | DN GE 808 | EQ XI 809 | GH TT 810 | GW FA 811 | SN PD 812 | SN TT 813 | SN UV 814 | TR DX 815 | TR TT 816 | WX MQ 817 | XM GD 818 | XW UV 819 | XW XK 820 | YB EO 821 | YB UV 822 | 14 823 | EM GX 824 | ZY KR 825 | ZS RG 826 | VH HB 827 | EM OO 828 | WK RF 829 | FZ OO 830 | OW MX 831 | CG TA 832 | JG SW 833 | KU LV 834 | FJ DI 835 | CG LV 836 | QA ZP 837 | 12 838 | DISTRIBUTED BISECTION 839 | EMBEDDED BISECTION 840 | STATISTICAL BISECTION 841 | DISTRIBUTED COMBINATORICS 842 | EMBEDDED COMBINATORICS 843 | STATISTICAL COMBINATORICS 844 | DISTRIBUTED CONFIGURATIONS 845 | EMBEDDED CONFIGURATIONS 846 | STATISTICAL CONFIGURATIONS 847 | DISTRIBUTED SETS 848 | EMBEDDED SETS 849 | STATISTICAL SETS 850 | 16 851 | FV PG 852 | VF PP 853 | FU BR 854 | CF BR 855 | WJ PP 856 | WJ SC 857 | QW TF 858 | VF FZ 859 | JK SC 860 | JK FP 861 | RP WV 862 | UJ HX 863 | UJ FP 864 | UJ SC 865 | LY PP 866 | RV FO 867 | 13 868 | EZ SX 869 | HS TK 870 | MX LI 871 | MX LY 872 | OS RU 873 | OS TK 874 | SX LI 875 | SX YN 876 | UO KO 877 | UO RU 878 | WH UK 879 | XP YN 880 | ZQ CU 881 | 15 882 | SH ES 883 | HJ PA 884 | NW XG 885 | HJ JW 886 | AL NI 887 | VO LD 888 | VO PA 889 | NW JW 890 | VH PA 891 | NW MV 892 | HT ML 893 | HJ PM 894 | VO MV 895 | AR LD 896 | QT MI 897 | 15 898 | DX JK 899 | RG JK 900 | DX LG 901 | OK LG 902 | NX PH 903 | UG PH 904 | RV QH 905 | ZK QH 906 | OK QL 907 | RV QL 908 | PA UU 909 | PA VL 910 | RG VL 911 | UG XN 912 | ZK XN 913 | 15 914 | AK EJ 915 | BZ LY 916 | BZ YK 917 | CC BR 918 | CL XF 919 | DD LY 920 | DD QO 921 | DF WI 922 | IZ AT 923 | LT QH 924 | OG OK 925 | SN PR 926 | SN YK 927 | XF EL 928 | XF WI 929 | 11 930 | JC EJ 931 | JC MF 932 | QO FT 933 | UF DA 934 | JC XV 935 | QO UL 936 | QO FK 937 | RA XV 938 | JC IF 939 | UF WN 940 | FN FT 941 | 15 942 | OH CS 943 | AJ KV 944 | YI KV 945 | YS KW 946 | MI PC 947 | OH PC 948 | RF PC 949 | YI QM 950 | AJ QQ 951 | DT QQ 952 | DT RJ 953 | OH RJ 954 | RF RJ 955 | DT UD 956 | ZP UD 957 | 10 958 | SC MW 959 | JJ NI 960 | NW TU 961 | MD MQ 962 | SC MQ 963 | JA XJ 964 | FD MW 965 | QO XJ 966 | NW FI 967 | JA FI 968 | 15 969 | WG QH 970 | XD RL 971 | XO ZZ 972 | FD FX 973 | XO VV 974 | XD XU 975 | TJ XU 976 | BD FX 977 | GW QK 978 | GW ZZ 979 | SA VV 980 | WG SB 981 | SA QH 982 | FD SB 983 | TJ QK 984 | 8 985 | VV CN 986 | NE HL 987 | NE LG 988 | UQ MX 989 | WD MX 990 | GC NA 991 | WD NA 992 | GC WA 993 | 14 994 | AX JI 995 | DI NH 996 | EY TC 997 | LX FA 998 | QL JP 999 | QL NS 1000 | RC FA 1001 | RC ZD 1002 | SI IO 1003 | UD ZG 1004 | VU WX 1005 | YV GI 1006 | YW NS 1007 | ZE HI 1008 | 15 1009 | XL HZ 1010 | GI BS 1011 | DS SC 1012 | WF BS 1013 | AV ES 1014 | GI NQ 1015 | FO HZ 1016 | LZ SJ 1017 | FO AE 1018 | WF XF 1019 | DS RT 1020 | WF NQ 1021 | WF ES 1022 | LZ AE 1023 | AV GO 1024 | 16 1025 | XD GF 1026 | UH HE 1027 | YM HP 1028 | FC MU 1029 | UH MU 1030 | XD MU 1031 | EV NE 1032 | NR NE 1033 | RL NE 1034 | XD NE 1035 | EJ PN 1036 | NR QG 1037 | EV SQ 1038 | AJ TB 1039 | ZS TU 1040 | WL YB 1041 | 15 1042 | DQ OR 1043 | UN BC 1044 | VA EK 1045 | CC JL 1046 | VA GS 1047 | MH GS 1048 | CC DC 1049 | QT DC 1050 | AT PK 1051 | DQ ID 1052 | AT UK 1053 | BN ID 1054 | CC PK 1055 | HH TX 1056 | RS JL 1057 | 16 1058 | JB GT 1059 | JB IW 1060 | JB OT 1061 | JB XL 1062 | KX GT 1063 | KX IW 1064 | KX OT 1065 | KX XL 1066 | OB GT 1067 | OB IW 1068 | OB OT 1069 | OB XL 1070 | TP GT 1071 | TP IW 1072 | TP OT 1073 | TP XL 1074 | 14 1075 | EK CG 1076 | SE EX 1077 | DR FK 1078 | HP FK 1079 | VM FK 1080 | NB NM 1081 | WN NM 1082 | WN PK 1083 | AN QA 1084 | DR QA 1085 | IJ QA 1086 | AN RP 1087 | HP YF 1088 | MJ YF 1089 | 15 1090 | HD SO 1091 | ZT YY 1092 | UQ SO 1093 | CQ QC 1094 | UQ KU 1095 | VU TK 1096 | NJ KU 1097 | VU YY 1098 | FG TK 1099 | ZT QF 1100 | FG QC 1101 | WP WM 1102 | NJ WM 1103 | HD CJ 1104 | WP QF 1105 | 14 1106 | WM IT 1107 | TT BR 1108 | MD ES 1109 | WZ VB 1110 | UK OU 1111 | BT PL 1112 | DY KT 1113 | TF RH 1114 | CK CZ 1115 | CK BR 1116 | VU GZ 1117 | UK IE 1118 | CK OU 1119 | UP IE 1120 | 14 1121 | FP AP 1122 | FP YZ 1123 | IS YZ 1124 | JI AK 1125 | QP AK 1126 | QP HJ 1127 | QT CR 1128 | QV GB 1129 | RT BM 1130 | VL AL 1131 | VL HJ 1132 | VL JX 1133 | WH PE 1134 | ZQ AP 1135 | 12 1136 | ASYMPTOTIC ESTIMATES 1137 | ASYMPTOTIC FORMS 1138 | BRANCHING IDEMPOTENCE 1139 | BRANCHING IDENTITY 1140 | BRANCHING SEPARATORS 1141 | CONNECTED SIMILARITY 1142 | FRACTAL ESTIMATES 1143 | FRACTAL ORIENTATIONS 1144 | FRACTAL STREAMING 1145 | STABILITY CHARACTERIZATIONS 1146 | TILE FORMS 1147 | TILE ORIENTATIONS 1148 | 15 1149 | UB EK 1150 | CB SY 1151 | BS MY 1152 | TL AV 1153 | UB SO 1154 | UB XV 1155 | UB VH 1156 | OZ MI 1157 | BS NK 1158 | BK EK 1159 | EU NK 1160 | TL TE 1161 | CB TE 1162 | BK VH 1163 | OZ SO 1164 | 10 1165 | DC EX 1166 | DC LY 1167 | RO LY 1168 | TC LY 1169 | YO LY 1170 | YO MA 1171 | DC MX 1172 | OL MX 1173 | HK XS 1174 | QB ZN 1175 | 15 1176 | QA JO 1177 | QD MO 1178 | QA MP 1179 | WC FF 1180 | TP TR 1181 | WA TR 1182 | ZH IC 1183 | QD CO 1184 | WA CO 1185 | LI AJ 1186 | QD TR 1187 | ZH MP 1188 | ZH IL 1189 | SS TR 1190 | QA IC 1191 | 14 1192 | VC CF 1193 | JC BK 1194 | VD ML 1195 | LV UI 1196 | EL TW 1197 | BQ LF 1198 | UW LY 1199 | JT PC 1200 | VC BK 1201 | JT PV 1202 | YB LE 1203 | CY LY 1204 | JU BU 1205 | ZC PV 1206 | 14 1207 | AL JT 1208 | BA CS 1209 | IO CS 1210 | IO DI 1211 | IO JT 1212 | IO XH 1213 | NE CS 1214 | NE GU 1215 | NE JT 1216 | RC DI 1217 | RC JT 1218 | RC KH 1219 | TB GY 1220 | ZS DI 1221 | 15 1222 | EY PQ 1223 | ZM CQ 1224 | GA DB 1225 | UO UU 1226 | UO DB 1227 | UG AD 1228 | UG UT 1229 | ZM UT 1230 | VA UU 1231 | IZ CQ 1232 | NH LV 1233 | EY LV 1234 | NH CV 1235 | VA AD 1236 | IZ CV 1237 | 14 1238 | VF HV 1239 | OE FR 1240 | VF JL 1241 | XM FR 1242 | WX TI 1243 | LK HV 1244 | LK JL 1245 | ZJ LP 1246 | UE JL 1247 | ZJ TI 1248 | XM UX 1249 | OV GN 1250 | LO HV 1251 | XM WN 1252 | 14 1253 | AL HE 1254 | AL TF 1255 | BI HE 1256 | GW XI 1257 | HZ WC 1258 | IP KU 1259 | MG HK 1260 | PA HE 1261 | PA KU 1262 | YF TF 1263 | ZB WF 1264 | ZB WH 1265 | ZE HE 1266 | ZE TF 1267 | 10 1268 | DO OA 1269 | DO RG 1270 | JG BW 1271 | IV ER 1272 | KU EU 1273 | PL BW 1274 | FN NE 1275 | SJ PC 1276 | LT ZI 1277 | PL YM 1278 | 16 1279 | CA HC 1280 | LW SK 1281 | SS OY 1282 | CP KB 1283 | LY JH 1284 | SF UB 1285 | MN HC 1286 | UL SK 1287 | CP JH 1288 | MN NX 1289 | UP HC 1290 | OX UB 1291 | SF WP 1292 | CA BS 1293 | LW LO 1294 | KO FG 1295 | 8 1296 | VI AD 1297 | RC KD 1298 | VI KD 1299 | RC PQ 1300 | MK RV 1301 | PU VJ 1302 | PU XA 1303 | RC XA 1304 | 7 1305 | KX DX 1306 | XF MK 1307 | WJ QP 1308 | XF QP 1309 | MS UV 1310 | MM ZV 1311 | MS ZV 1312 | 16 1313 | GR BC 1314 | GR LO 1315 | GR QE 1316 | GR UH 1317 | PC BC 1318 | PC LO 1319 | PC QE 1320 | PC UH 1321 | SZ BC 1322 | SZ LO 1323 | SZ QE 1324 | SZ UH 1325 | VW BC 1326 | VW LO 1327 | VW QE 1328 | VW UH 1329 | 6 1330 | TG AR 1331 | VY AR 1332 | YW AR 1333 | TG XT 1334 | VY XT 1335 | YW XT 1336 | 10 1337 | AQ NU 1338 | FN NU 1339 | KA KE 1340 | PK IS 1341 | PK XZ 1342 | WR UJ 1343 | WR VL 1344 | ZZ JI 1345 | ZZ QR 1346 | ZZ VQ 1347 | 15 1348 | SE DI 1349 | HB NO 1350 | ZN NO 1351 | ZJ OZ 1352 | ZN OZ 1353 | LF RU 1354 | NO RU 1355 | WA RU 1356 | GQ YB 1357 | NO YB 1358 | GQ YN 1359 | RC YN 1360 | WA YN 1361 | QP ZS 1362 | UD ZS 1363 | 9 1364 | BOUNDARY GRAVITY 1365 | BOUNDARY HERMENEUTICS 1366 | BOUNDARY TRANSGRESSION 1367 | QUANTUM GRAVITY 1368 | QUANTUM HERMENEUTICS 1369 | QUANTUM TRANSGRESSION 1370 | TRANSFORMATIVE GRAVITY 1371 | TRANSFORMATIVE HERMENEUTICS 1372 | TRANSFORMATIVE TRANSGRESSION 1373 | 9 1374 | RL CD 1375 | OZ LY 1376 | BW OX 1377 | OZ PU 1378 | BW TO 1379 | MR TO 1380 | RA TO 1381 | BW VF 1382 | BW YB 1383 | 13 1384 | GM GM 1385 | XC KB 1386 | DX LJ 1387 | VA LJ 1388 | VA ME 1389 | VN ME 1390 | GM ML 1391 | VN ML 1392 | DK SW 1393 | XC SW 1394 | ZQ VG 1395 | DK WC 1396 | GN WC 1397 | 14 1398 | EIGENVALUE ALGORITHMS 1399 | POLYGON ASSIGNMENT 1400 | VARIATIONAL DECOMPOSITION 1401 | EIGENVALUE EXTENSION 1402 | STEINER EXTENSION 1403 | SPACE FUNCTORS 1404 | VARIATIONAL FUNCTORS 1405 | DIAMETER OPTIMALITY 1406 | PACKET QUOTIENTS 1407 | MEMBERSHIP REPRESENTATION 1408 | VARIATIONAL REPRESENTATION 1409 | MEMBERSHIP SPANNING 1410 | REPRESENTATION SPANNING 1411 | ASSIGNMENT VERIFICATION 1412 | 14 1413 | DP HN 1414 | LT HN 1415 | ND HN 1416 | NI HN 1417 | PO HN 1418 | QI HN 1419 | RX HN 1420 | DP KQ 1421 | LT KQ 1422 | ND KQ 1423 | NI KQ 1424 | PO KQ 1425 | QI KQ 1426 | RX KQ 1427 | -------------------------------------------------------------------------------- /day3_GoogleCodeJam2016_Round1B/C-small-practice.out: -------------------------------------------------------------------------------- 1 | Case #1: 1 2 | Case #2: 0 3 | Case #3: 0 4 | Case #4: 7 5 | Case #5: 7 6 | Case #6: 3 7 | Case #7: 0 8 | Case #8: 3 9 | Case #9: 6 10 | Case #10: 4 11 | Case #11: 3 12 | Case #12: 7 13 | Case #13: 3 14 | Case #14: 7 15 | Case #15: 1 16 | Case #16: 4 17 | Case #17: 3 18 | Case #18: 12 19 | Case #19: 7 20 | Case #20: 2 21 | Case #21: 7 22 | Case #22: 7 23 | Case #23: 2 24 | Case #24: 8 25 | Case #25: 7 26 | Case #26: 7 27 | Case #27: 12 28 | Case #28: 7 29 | Case #29: 4 30 | Case #30: 3 31 | Case #31: 6 32 | Case #32: 4 33 | Case #33: 4 34 | Case #34: 7 35 | Case #35: 2 36 | Case #36: 2 37 | Case #37: 4 38 | Case #38: 1 39 | Case #39: 1 40 | Case #40: 3 41 | Case #41: 7 42 | Case #42: 3 43 | Case #43: 4 44 | Case #44: 6 45 | Case #45: 2 46 | Case #46: 5 47 | Case #47: 7 48 | Case #48: 2 49 | Case #49: 5 50 | Case #50: 6 51 | Case #51: 9 52 | Case #52: 7 53 | Case #53: 6 54 | Case #54: 12 55 | Case #55: 7 56 | Case #56: 7 57 | Case #57: 4 58 | Case #58: 2 59 | Case #59: 8 60 | Case #60: 5 61 | Case #61: 4 62 | Case #62: 5 63 | Case #63: 7 64 | Case #64: 3 65 | Case #65: 2 66 | Case #66: 7 67 | Case #67: 3 68 | Case #68: 7 69 | Case #69: 2 70 | Case #70: 2 71 | Case #71: 5 72 | Case #72: 5 73 | Case #73: 5 74 | Case #74: 12 75 | Case #75: 4 76 | Case #76: 7 77 | Case #77: 3 78 | Case #78: 3 79 | Case #79: 3 80 | Case #80: 5 81 | Case #81: 3 82 | Case #82: 5 83 | Case #83: 2 84 | Case #84: 7 85 | Case #85: 7 86 | Case #86: 4 87 | Case #87: 3 88 | Case #88: 1 89 | Case #89: 5 90 | Case #90: 2 91 | Case #91: 2 92 | Case #92: 12 93 | Case #93: 3 94 | Case #94: 0 95 | Case #95: 4 96 | Case #96: 6 97 | Case #97: 1 98 | Case #98: 5 99 | Case #99: 4 100 | Case #100: 7 101 | -------------------------------------------------------------------------------- /day6_GoogleCodeJam2017_QualificationRound/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eunsol-Lee/algorithmStudyDayByDay/b5860e826c9f5df209423433ba9817934e9a47c6/day6_GoogleCodeJam2017_QualificationRound/.DS_Store -------------------------------------------------------------------------------- /day6_GoogleCodeJam2017_QualificationRound/2017_QR_A_OversizedPancakeFlipper.py: -------------------------------------------------------------------------------- 1 | def solve(s, k): 2 | s = '+'+s 3 | count = 0 4 | while True: 5 | q = s.find('+-') 6 | if q == -1: 7 | return str(count) 8 | count += 1 9 | if q+1+k>len(s): 10 | return 'IMPOSSIBLE' 11 | p = '' 12 | for x in s[q+1:q+1+k]: 13 | p += '+' if x == '-' else '-' 14 | s = s[:q+1]+p+s[q+1+k:] 15 | 16 | 17 | T = int(input()) 18 | for t in range(1, T+1): 19 | S, k = input().split(' ') 20 | K = int(k) 21 | print ('Case #%d: %s' % (t, solve(S, K))) 22 | -------------------------------------------------------------------------------- /day6_GoogleCodeJam2017_QualificationRound/2017_QR_B_TidyNumbers.py: -------------------------------------------------------------------------------- 1 | def solve(s): 2 | 3 | result = '' 4 | for x in s: 5 | small = result+chr(ord(x)-1)+'9'*(len(s)-len(result)-1) 6 | large = result+x*(len(s)-len(result)) 7 | if int(large) > int(s): 8 | return int(small) 9 | else: 10 | result += x 11 | return int(result) 12 | 13 | T = int(input()) 14 | 15 | for t in range(1, T+1): 16 | N = input() 17 | print ('Case #%d: %d' % (t, solve(N))) 18 | -------------------------------------------------------------------------------- /day6_GoogleCodeJam2017_QualificationRound/2017_QR_C_BathroomStalls.py: -------------------------------------------------------------------------------- 1 | def solve(N, K): 2 | r = 1 3 | for i in range(61): 4 | minN = r - 1 5 | maxN = r*2 -1 6 | if K <= maxN: 7 | rest = N-maxN 8 | restC = rest // (r*2) 9 | restD = rest - restC*r*2 10 | K -= minN 11 | if restD <= r: 12 | if K <= restD: 13 | return [restC+1, restC] 14 | else: 15 | return [restC]*2 16 | restD -= r 17 | if restD <= r: 18 | if K <= restD: 19 | return [restC+1]*2 20 | else: 21 | return [restC+1, restC] 22 | 23 | r *= 2 24 | 25 | 26 | T = int(input()) 27 | 28 | for i in range(1, T+1): 29 | N, K = [int(x) for x in input().split(' ')] 30 | l, r = solve(N, K) 31 | print ('Case #%d: %d %d' % (i, l, r)) 32 | -------------------------------------------------------------------------------- /day6_GoogleCodeJam2017_QualificationRound/2017_QR_D_FashionShow.py: -------------------------------------------------------------------------------- 1 | def solve(n, mat): 2 | dic = '.+xo' 3 | result = {'result': [0, 0], 'indivi': []} 4 | # find bishop 5 | r = [0] * n 6 | c = [0] * n 7 | for i in range(n): 8 | for j in range(n): 9 | if mat[i][j] == 2 or mat[i][j] == 3: 10 | r[i] = 1 11 | c[j] = 1 12 | for i in range(n): 13 | if r[i] == 0: 14 | for j in range(n): 15 | if c[j] == 0: 16 | r[i] = 1 17 | c[j] = 1 18 | mat[i][j] = 2 if not mat[i][j] else 3 19 | result['result'][1] += 1 20 | result['indivi'].append('%s %d %d'%( dic[mat[i][j]], i+1, j+1)) 21 | break 22 | 23 | # find rook 24 | pDia = [0] * (2 * n) 25 | mDia = [0] * (2 * n) 26 | 27 | for i in range(n): 28 | for j in range(n): 29 | if mat[i][j] == 1 or mat[i][j] == 3: 30 | pDia[i+j] = 1 31 | mDia[i-j+n] = 1 32 | 33 | for i in range(n*2-1): 34 | if i % 2 == 0: 35 | plus = i // 2 36 | else: 37 | plus = (n-1)*2 - i//2 38 | for j in range(n*2): 39 | r = j 40 | c = plus-r 41 | if r >=0 and c >=0 and r