Exemplo n.º 1
0
Arquivo: 5.cs Projeto: qifanyyy/CLCDSA
        bool Check(int a)
        {
            Chest ch    = chests[a];
            Chest start = chests[0];

            if (start.GetKeyOfType(ch.KeyOpen) < 1)
            {
                return(false);
            }

            //connectivity
            Chest newStart = new Chest();

            newStart.KeyHas = new Dictionary <int, int>(start.KeyHas);
            newStart.KeyHas[ch.KeyOpen]--;
            foreach (var pair in ch.KeyHas)
            {
                newStart.AddKey(pair.Key, pair.Value);
            }

            chests[0] = newStart;
            chests[a] = null;
            bool res = BFS(N - tot - 1);

            chests[a] = ch;
            chests[0] = start;
            return(res);
        }