public static void Main(string[] args) { using (var helper = new CodeJamHelper('B', ProblemType.Large)) { Pancakes.Run(helper); } }
public bool Equals(State other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(Pancakes.SequenceEqual(other.Pancakes)); }
public IEnumerable <State> GetFlipPositions() { for (var i = 0; i <= Pancakes.Length - FlipperSize; i++) { var pancakes = Pancakes.ToArray(); for (var pos = 0; pos < FlipperSize; pos++) { pancakes[pos + i] = !pancakes[pos + i]; } yield return(new State(pancakes, FlipperSize)); } }
public override string ToString() { return(Pancakes.Select(x => x ? "+" : "-").Join()); }
public override int GetHashCode() { return(Pancakes.GetSequenceHashCode()); }
public void TakePancake(Pancakes pancake) { pancakeStack.Push(pancake); }