示例#1
0
文件: 16.cs 项目: qifanyyy/CLCDSA
 public static void Main(string[] args)
 {
     using (var helper = new CodeJamHelper('B', ProblemType.Large))
     {
         Pancakes.Run(helper);
     }
 }
示例#2
0
            public bool Equals(State other)
            {
                if (ReferenceEquals(null, other))
                {
                    return(false);
                }
                if (ReferenceEquals(this, other))
                {
                    return(true);
                }

                return(Pancakes.SequenceEqual(other.Pancakes));
            }
示例#3
0
            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));
                }
            }
示例#4
0
 public override string ToString()
 {
     return(Pancakes.Select(x => x ? "+" : "-").Join());
 }
示例#5
0
 public override int GetHashCode()
 {
     return(Pancakes.GetSequenceHashCode());
 }
示例#6
0
 public void TakePancake(Pancakes pancake)
 {
     pancakeStack.Push(pancake);
 }