From 53115f12044038d5c49a3b94f7d829dd10f99dd2 Mon Sep 17 00:00:00 2001 From: Alfredo Beaumont Date: Tue, 12 May 2020 23:11:21 +0200 Subject: [PATCH] [codejam - 2016-qualification] Add OCaml solution for B. --- codejam/2016-qualification/b-1.ans | 5 ++ codejam/2016-qualification/b-1.in | 6 ++ codejam/2016-qualification/b-2.ans | 100 ++++++++++++++++++++++++++++ codejam/2016-qualification/b-2.in | 101 +++++++++++++++++++++++++++++ codejam/2016-qualification/b-3.ans | 100 ++++++++++++++++++++++++++++ codejam/2016-qualification/b-3.in | 101 +++++++++++++++++++++++++++++ codejam/2016-qualification/b.ml | 20 ++++++ codejam/README.md | 2 + 8 files changed, 435 insertions(+) create mode 100644 codejam/2016-qualification/b-1.ans create mode 100644 codejam/2016-qualification/b-1.in create mode 100644 codejam/2016-qualification/b-2.ans create mode 100644 codejam/2016-qualification/b-2.in create mode 100644 codejam/2016-qualification/b-3.ans create mode 100644 codejam/2016-qualification/b-3.in create mode 100644 codejam/2016-qualification/b.ml diff --git a/codejam/2016-qualification/b-1.ans b/codejam/2016-qualification/b-1.ans new file mode 100644 index 00000000..ed4335bd --- /dev/null +++ b/codejam/2016-qualification/b-1.ans @@ -0,0 +1,5 @@ +Case #1: 1 +Case #2: 1 +Case #3: 2 +Case #4: 0 +Case #5: 3 diff --git a/codejam/2016-qualification/b-1.in b/codejam/2016-qualification/b-1.in new file mode 100644 index 00000000..35f96e18 --- /dev/null +++ b/codejam/2016-qualification/b-1.in @@ -0,0 +1,6 @@ +5 +- +-+ ++- ++++ +--+- diff --git a/codejam/2016-qualification/b-2.ans b/codejam/2016-qualification/b-2.ans new file mode 100644 index 00000000..ea00c0f9 --- /dev/null +++ b/codejam/2016-qualification/b-2.ans @@ -0,0 +1,100 @@ +Case #1: 1 +Case #2: 1 +Case #3: 2 +Case #4: 0 +Case #5: 3 +Case #6: 8 +Case #7: 3 +Case #8: 0 +Case #9: 1 +Case #10: 1 +Case #11: 3 +Case #12: 5 +Case #13: 6 +Case #14: 3 +Case #15: 0 +Case #16: 3 +Case #17: 5 +Case #18: 3 +Case #19: 6 +Case #20: 3 +Case #21: 3 +Case #22: 2 +Case #23: 2 +Case #24: 5 +Case #25: 4 +Case #26: 2 +Case #27: 2 +Case #28: 7 +Case #29: 5 +Case #30: 2 +Case #31: 3 +Case #32: 5 +Case #33: 5 +Case #34: 3 +Case #35: 7 +Case #36: 9 +Case #37: 5 +Case #38: 3 +Case #39: 1 +Case #40: 2 +Case #41: 1 +Case #42: 3 +Case #43: 7 +Case #44: 0 +Case #45: 1 +Case #46: 6 +Case #47: 3 +Case #48: 4 +Case #49: 4 +Case #50: 5 +Case #51: 6 +Case #52: 5 +Case #53: 2 +Case #54: 4 +Case #55: 3 +Case #56: 7 +Case #57: 0 +Case #58: 4 +Case #59: 2 +Case #60: 6 +Case #61: 2 +Case #62: 1 +Case #63: 3 +Case #64: 4 +Case #65: 5 +Case #66: 1 +Case #67: 2 +Case #68: 2 +Case #69: 3 +Case #70: 4 +Case #71: 6 +Case #72: 4 +Case #73: 2 +Case #74: 2 +Case #75: 10 +Case #76: 3 +Case #77: 4 +Case #78: 3 +Case #79: 2 +Case #80: 4 +Case #81: 3 +Case #82: 2 +Case #83: 6 +Case #84: 1 +Case #85: 2 +Case #86: 5 +Case #87: 6 +Case #88: 6 +Case #89: 3 +Case #90: 5 +Case #91: 3 +Case #92: 7 +Case #93: 6 +Case #94: 4 +Case #95: 6 +Case #96: 1 +Case #97: 6 +Case #98: 4 +Case #99: 4 +Case #100: 5 diff --git a/codejam/2016-qualification/b-2.in b/codejam/2016-qualification/b-2.in new file mode 100644 index 00000000..4f3246d6 --- /dev/null +++ b/codejam/2016-qualification/b-2.in @@ -0,0 +1,101 @@ +100 +- +-+ ++- ++++ +--+- ++-+--+-+-+ +-+-++ ++++++ +---- +-- +-++-++++++ +-+--+- ++--+-+---+ +-+-- +++ +----+++--+ +-++---+--+ +-++- ++--+++-++- +----+++++- +-++++++++- ++-+ ++++--- +----++--+- ++-+- ++++------+ +++- +-+-+-++-++ +---+--+--- ++--------+ +-+-----++ +-+--+++--- +-++++--+-- +--++-----+ +-+---+--+- +-+-+-+-+-+ +-+-++---++ +---+--+ +-++ +++-+ +----- +---+- +-+-+--++-- ++ +--++ ++---+--+-+ +-+- ++--+--++++ +++-+++- +--+++-+++- ++-+---+--+ +---++--+-- ++-- ++++++-++- +--++-- +-+++-+--+- +++++ ++++-+----- +++++--- +++---+-++- +++++++---+ +-+++ +-+++++--++ ++--++++++- +-++++-++-- +---+ ++--+ +++--++ +-+++-+ ++--+---+++ ++-+--+---+ ++-++---+++ ++++- ++-++ ++-+-+-+-+- +------+--+ ++-+++-+ +-+-+ +++++- +++++-++--- +-++-++ +++-- +++-++-+--+ +--+ ++--- +----+--++- ++++-+-++-+ ++-+++-++-+ +-++++---++ +--+--+- +-+++--++++ +--+--++-+- ++++-+++-+- +++---++--+ ++--+--+++- +--- ++--+++--+- +++-+-++ ++++-+-+ +-++-+--+++ diff --git a/codejam/2016-qualification/b-3.ans b/codejam/2016-qualification/b-3.ans new file mode 100644 index 00000000..35b883e8 --- /dev/null +++ b/codejam/2016-qualification/b-3.ans @@ -0,0 +1,100 @@ +Case #1: 1 +Case #2: 1 +Case #3: 2 +Case #4: 0 +Case #5: 3 +Case #6: 9 +Case #7: 52 +Case #8: 3 +Case #9: 53 +Case #10: 10 +Case #11: 2 +Case #12: 19 +Case #13: 3 +Case #14: 48 +Case #15: 2 +Case #16: 23 +Case #17: 50 +Case #18: 8 +Case #19: 3 +Case #20: 40 +Case #21: 54 +Case #22: 47 +Case #23: 20 +Case #24: 0 +Case #25: 51 +Case #26: 44 +Case #27: 60 +Case #28: 47 +Case #29: 0 +Case #30: 43 +Case #31: 50 +Case #32: 49 +Case #33: 49 +Case #34: 2 +Case #35: 1 +Case #36: 38 +Case #37: 59 +Case #38: 49 +Case #39: 40 +Case #40: 45 +Case #41: 54 +Case #42: 6 +Case #43: 10 +Case #44: 2 +Case #45: 37 +Case #46: 53 +Case #47: 19 +Case #48: 44 +Case #49: 49 +Case #50: 52 +Case #51: 44 +Case #52: 1 +Case #53: 54 +Case #54: 24 +Case #55: 45 +Case #56: 34 +Case #57: 51 +Case #58: 41 +Case #59: 44 +Case #60: 42 +Case #61: 51 +Case #62: 48 +Case #63: 0 +Case #64: 22 +Case #65: 54 +Case #66: 99 +Case #67: 48 +Case #68: 39 +Case #69: 1 +Case #70: 45 +Case #71: 44 +Case #72: 57 +Case #73: 42 +Case #74: 2 +Case #75: 55 +Case #76: 53 +Case #77: 50 +Case #78: 48 +Case #79: 45 +Case #80: 45 +Case #81: 0 +Case #82: 1 +Case #83: 49 +Case #84: 1 +Case #85: 55 +Case #86: 43 +Case #87: 54 +Case #88: 54 +Case #89: 1 +Case #90: 52 +Case #91: 100 +Case #92: 30 +Case #93: 40 +Case #94: 54 +Case #95: 50 +Case #96: 51 +Case #97: 49 +Case #98: 50 +Case #99: 34 +Case #100: 39 diff --git a/codejam/2016-qualification/b-3.in b/codejam/2016-qualification/b-3.in new file mode 100644 index 00000000..1e49fd23 --- /dev/null +++ b/codejam/2016-qualification/b-3.in @@ -0,0 +1,101 @@ +100 +- +-+ ++- ++++ +--+- +-+-+-+-+-+ ++---++---++++--+---+-+--+-+-++-++-----+++--+--++-++-+++-++--+-++-++++-------+---++-+++--+-++--+-+++- +-++++++++- +-+-+-+----++++--+-+-+-+++-++-+++-------++------+++--++-++-+-+--+-+-+--++++--+---+--++++-+++--+++-+-- ++-+-+-+-+- ++--------------------------------------------------------------------------------------------------+ +-----+--+++-+-++---+--------+-++++-++-++---+ +-+- ++--+++++--+++++--+++++----++---++-+-+-++---+-++-+--++----++-----+---+--++-+-+-+++-+++++++--++-+-++-+ ++--------+ +--++-+---+-++++-+--+-+-----+-+++-+++---+- +++++--++--++--+-+--++-+-++---++++--+-++-++++++-+++----+-++++-++----+-+++-+---+++-+--+++--+------+-+- ++--++--+----+--+ +-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- ++-++-+--++++++-++---+-+++++++----+--+-+---++-+--+-+++---+-+-+++----+-+++-++++---+ +++-+-+++-+----+-++-+-+-+--+---+--+++-++----+-+++-+-+---+-++-+++++--++++--++++-+++------+++-++--+--+- +-+---+--+++---++--+-+-+---++++-+--+++-----+++--+++---+--+--+++++-------+---++++-+--+--++-+++-++-+--- ++-+-++--+++-++--++--++-+-++++---+-+ ++++++ +-+-++-+---+-++--++++-++---++--+-++---+----++-+-+-+---+--++--+----+++++++---+--+----++++--+---+-++--+ ++++++++------+-+--+-+-+--+++--+---++-+-----++-++----+--++----+-+-++-+-+-+--++-+---+++++ +++-+-+-+-+-++++---++--++--++--++----+-++-++-++-++-+--++-+--+-++-++-+--++---+-+--+------+--+--+++-++- +-++-----++++-++++--++-++--+--++++--++++++++----+-++--++-+++---+-+-+++++++++-+-+---+--+++-+-+--+--++- +++++++++++++++++++++++++++++++++++++++++++++++++++ +-+++++++--++++-+--+-+-++++-++++++----+-+++---+----++++-++----++---+++-++++---+++-+----++-++-++-++--- +++++-----+++-++--+-+-+---+-----+++-+--+-+++++++--+-++++-+++-+-+++---+---+----++-----+-+--+-+-++--+-- +----+---++----+-+-+----++----+++--+-----++-+++++++++++--++--+-+++-+--++--+---+--+--+-+-+--+-++-++--+ +-++++--+-+++-++++-+-++-++++++++---++---++-+--++---++-++-++-+-----------++-+---+-+-----+-+-+-+--++--- ++-+ +-++ +++--+--------++--+-+--+++-----++--+----+-++++-+++-++---++-+----+--+-++-+-++++-+++ +-++-+++-+---+----+---+-++++++-++-++-+-------++-++-++---+-+-++-++-+--+++-+--+---+-++-++--+-+-+-+--+-+ +---++-+---+-++----+++--+-----+-+++----+-+-++-++---+---++++----+-++++-+++-+--++-+--+-+--+-------++--+ ++-+----+++-++-------++--+-++++--+--++---+--+++--+++-++-+--++---++++--+++-+---+-+++--++++ +-++++--+-++-+++++-++++---+--++---++-++-+-+-------+++++++++--+++++-+--+-+--+-+--++++-----++-++-++---- ++--+++-+-+--++----+--+-+-+--+----+-++++---+--+-+++++++--++++++++-+-++--+-++----+-+-++--+-+---+-++--+ ++-+--+--+ +++-+--++-++++-+- ++-- +-+-++---+++---+-++++--++++--++-++-++----+------+--++---+-+++++-+--+--++-+-----++++ +---+++-+-+-++--+-+++---++-++-+-+-+++-------+++--+--+-+-+++---+-+-++-++++++---+--++-++-+-+++--++++--+ +-+--+----+--+++--+-+++++-+++++++---+++-+- +++-----+-+----+-+-----+-++--++-+-+++++--++----+--+-++--++-+--+----++++----+------+++++---+-----+---+ +-+-----++++-++--+--+++++-++-+-++-+-+--+-+++-++---+-------+++--++--+++---++-+-+-++---+-+-++--- +++---+--+++----+---+++-----+++-+--++-+----+++-++--+++-++-+++--+--+-+-+-+-++--+-----+-+-++++-+-+++++- +++--++-++++-+-+--++++++++-+-++-++-++-+-++-----+++++--++---+-+++----+-+----+++++++-------+--+-++++++- +----- ++-++-++++-++--+--++++-+----+-++++----+-++-+----+-++----++---+-+-+--+-+-+++----+-+++---+-+-++---+--++ ++-+-++---+---+++++-++++-+++-++---+---++------++-+-+ +--++--------+++-++-+--+-+--+++-------+-+-++-+-+++++--++++++-++++++--+++--+-+-++--++--++-+-+++------- ++--+--+----+-+-++----++---+--+++--++--++-++++-+----+-++++-++-+--- +-+-+--+---+-+-+---++---+---+++-+-++--++-----++--++++-+---+-+++++++---+-+-+----+--+-+++++++++-++-++-- +--+++-+++-+++++-+-----++--+++----+++-+++-------+-+-++-+++-++----+++--++++-+--+-----++----++-----+--+ ++-+++-++-+----+--++++-++++++--+---+++--+++--++------++++++-++---++--++--+--+--++-+++-+---+--+++++-++ ++-----+++---+-++-+--+++--++++-+++----+++-+--+++++--+++--+------+++---+++-+-+-+--+--+++-----+++++++-+ +-++++--++-+--+-++++-++++-+--+++---+-++-++++++---+++-+-++--+--+++-+--+-+-+--+--+++----+-++-++++++++-+ +++--+++--+-+++-++-+++-+-+-+--+++++++-------++--+--+++++--+--++---+-+-++++---++--+--+--++---+++++-+-+ +++ ++---+---++----+---+------++----+--+-------+--+--+-- +++--+++-+++---++---++---+++-++++-+--+++-++--++-++-+-+-+-++-+-+++-+++--+---+--++-+----+---+--+-+++--+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++--+++++----+--+--++++---++-+-----++----++++-++-++-+-----++++-+++---+---+++-+--++-++-++-+-+---+-++-- +--+-+++--++---+++---++---+--+--++---++----++++--+---++--+++--++---+--+++--+++---++-+- +--- +--+--++----++++---+++-+-++-+--+++--+---+--++++++---+-++--+++-----+-++-+-++-++++---++++---++--++--+++ +++-+++--+++--+-----+-+--+--++++++-+-++---+++-++++++--+-++++-++++++-+++-+---++-+++----++-----++--+-++ +---+-++-+---++-+---++--++++---+--+++-+++--++--++++--++---+--+++-+-+-+-+-++--+-++---++-+-+-+-+--+---- +++++++--+--+-+--------++-+--+--+++++-+-+---+--+---++----++++++-----+-----+--++-----+++++--++--+-+-++ +++- +-++++--++-----+-+-++----+--+++++++-+----+--+-+---+--++----+-++-+--++-+--+--+-+----+--+-+++-+-+++-++- +-+++-+---+++++-+++-++---+-+-+---+++--+-+++-+-+--+-++--------++-+++++-+---+-++---++--++--+--+-++-+--- ++----+-++--+-+--++++-++-+--++++-+++------+-+++-+-+-+++---+-+--+-+++-+++---+-+-+-------++++---+------ +++++--+++--+---++++++-++++-+-+++++-+-+------+-++-+----++-+++--+----+++-+--+-+-+----+-++-+---++++---- +--++-++--+-++-+--+++----------+++---+++---+++-----------+-++---+-++--+-+++++++-+-+-+-+--+--+-++----+ +-++-++++--++---++-++++-+++--+----------+++-+----++++-++---++-----++-++-++---++-+++-+-++-+-+++---+--+ ++ +--+ +-+-----++--++++++--++++++++--+-+++---+---+++--+++-+-++-++++++--++-++-+-+--++--+-+-+--+----++-+-+++-- +-- +---++-+++-+-++----+-++++-++++--+-+-+-+--++++-+-++++--+-+-+-+-++--+++-----++--++-+--+---++---++-+-+++ +-++--+-++++++++-++----+++++---+-++++++-------++----+-+++-++--++-+++--+---+++-++---++-+++++--++-+-++- ++++++-----+++--+++-++--++-++--+--+-+-+-----+-++-++-++++-+--++--+-+--+++-+--+-----++++-+-++-++-++-+-+ ++++++++-+++--+++++++++-+-+-+-+--++-+--+-----+++-+---+-+-++-++--+--++++++-+-+-+-+-++---++-+--++-++++- +-------------------------------------------------- +++--+---++-++---+-++-+-++--++++----+-+-++-+++--++-++----+----+-+---+-----++---++--+---+-+-+++-+----+ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ++++-+-+-++++------++-+++++-++-+--++--+++--+---+-+-++---+-- +++--++---------+--++-++--++------+++++--------+-++--++++++--+++++++-++--++++-+----++--+--++-+-+---+- ++---+-+-+++--++--+++-+++--++---+++--++-++-+-+-+++-++-+-++--+-+--+--+----++-----+++-++-+--+++++-++--+ ++-+-++--+--+++-+++--+-+---++---+--++-+-+++---++++-+-+-+++-++-+-+----++--+++++++----+--++++-+++++++-- +-+++--+------+--+----++-+-+++--++-+-+-+++-----+--+-++--+--+++-+-+--+-+----+--++++-+-+++-++++++++---+ +-+-++++--+-+++-++-+-+-+++-++++-+--+-++++----++++-----+++-+++---+--+----+---++++-+-++--+++++----++-+- ++++--+--+++---+-++--------+-+++--+-++--++-+-+--++-++-++-+-+-++-+--++++++-++++++++-+--+--+++-----++-+ ++++-+-++-+--+---++--+++-+++-+-+--++-++-++--+--+-++-++++++-+ +----+-+-+-+-++-+--+++-----++++++---++++-----++--+--+---+--++-+--++-+++-++-----+--++ diff --git a/codejam/2016-qualification/b.ml b/codejam/2016-qualification/b.ml new file mode 100644 index 00000000..1975ab8b --- /dev/null +++ b/codejam/2016-qualification/b.ml @@ -0,0 +1,20 @@ +(* https://codingcompetitions.withgoogle.com/codejam/round/0000000000201bee/0000000000201d17 *) +let reverse s = + Bytes.init (Bytes.length s) (fun i -> match s.[i] with '-' -> '+' | _ -> '-') + +let process () = + let rec loop s count = + try + let pos = Bytes.rindex s '-' in + let s' = Bytes.sub s 0 (pos + 1) in + let l = Bytes.length s' in + if l >= 2 && Bytes.sub s (l - 2) 2 = "+-" + then let s'' = (reverse s') in s''.[l - 1] <- '-'; loop s'' (count + 1) + else loop (reverse s') (count + 1) + with _ -> count in + loop (read_line ()) 0 + +let () = + for i = 1 to read_int () do + Printf.printf "Case #%d: %d\n" i (process ()) + done diff --git a/codejam/README.md b/codejam/README.md index b7d1f953..d4004530 100644 --- a/codejam/README.md +++ b/codejam/README.md @@ -52,6 +52,8 @@ There are solutions for the following [Google Code Jam](https://codejam.withgoog ([problem site](https://codingcompetitions.withgoogle.com/codejam/round/00000000002017f7/0000000000201878)) 1. [2017 Qualification Round - A. Oversized Pancake Flipper](2017-qualification/a.py) ([problem site](https://codingcompetitions.withgoogle.com/codejam/round/00000000002017f7/0000000000201847)) +1. [2016 Qualification Round - B. Revenge of the Pancakes](2016-qualification/b.ml) + ([problem site](https://codingcompetitions.withgoogle.com/codejam/round/0000000000201bee/0000000000201d17)) 1. [2016 Qualification Round - A. Counting Sheep](2016-qualification/a.rkt) ([problem site](https://codingcompetitions.withgoogle.com/codejam/round/0000000000201bee/0000000000201c8a)) 1. [2014 Qualification Round - B. Cookie Clicker Alpha](2014-qualification/b.lisp)