Untitled

 avatar
unknown
csharp
2 years ago
54 kB
9
Indexable
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace problems3
{
    public class Problems
    {
        string stringbase;
        HashSet<string> lista = new HashSet<string>();
        int izquierdaBASE;
        int derechaBASE;
        public IList<string> GenerateParenthesis(int n)
        {
          
        
            testisValid();
            var index = ((n * 2) / 2) - 1;
            stringbase = Primero(n);

            lista.Add(stringbase);
            print();
            firstRound(index, lista);
            izquierdaBASE = index;
            derechaBASE = index + 1;
          
          
       //     changePosition(index - 1, index + 1, stringbase.Length);
            changePositionfinal(index - 1, index + 1, stringbase.Length);
            return lista.ToList();
        }

      public class structure
        {
          public  List<int> indices;

            public structure(List<int> param) {
                this.indices = param;
                hijos = new List<structure>();
            }
            public List<structure> hijos { get; set; }
            public override string ToString()
            {
                StringBuilder   sb = new StringBuilder();
                sb.AppendLine("-items-");
                indices.ForEach(item=>sb.Append($"{item.ToString()},"));
                sb.AppendLine("-----");
                return sb.ToString(); 
            }
        }

        string Primero(int n)
        {
            string first = new string('(', n);
            string second = new string(')', n);
            return $"{first}{second}";
        }

        void firstRound(int index, HashSet<string> lista)
        {
            for (int i = index + 1; i < stringbase.Length - 1; i++)
            {
                var indices = new List<int>() { index, i };
                lista.Add(change(indices, stringbase));
            }
        }


        void changePositionReverseBase(List<int> indices,int lastitemfather, int length)
        {

            var copy = new List<int>(indices);
            
            //  indices.Add(izquierdaBASE);
            //indices.Add(derechaBASE);
            int basederecha = indices.Last();
            for (int z = 0; z <=1 ; z++)
            {
                if (z == 1) { 
                    copy.RemoveAt(copy.Count-1);
                    copy.Add(lastitemfather);
                }
         
            for (int x = lastitemfather+z; x < length - 3; x++)
            {

                for (int i = x + 1; i < length - 1; i++)
                {
                    var indicesInner = new List<int>(copy);
                    indicesInner.Add(x);
                    indicesInner.Add(i);

                    var itemparaagregar = change(indicesInner, stringbase);
                    if (isValid(itemparaagregar))
                    {
                        foreach (var item in indicesInner)
                        {
                            Console.Write($"{item}-");
                        }
                        Console.WriteLine();
                        lista.Add(itemparaagregar);
                    }
                    else
                    {
                        //if(copy.Count> 0)
                        //copy.RemoveAt(copy.Count - 1);
                        //if(copy.Count==0)
                        //{
                        //    return;
                        //}
                        return;

                    }

                }
                }

            }


        }
        void changePositionWithIzquierdaBase(List<int> indices, int length)
        {

            var copy = new List<int>(indices); 
            //  indices.Add(izquierdaBASE);
            //indices.Add(derechaBASE);
           
            if(indices.Count > 2) {
                bool primervuelta = false;
            }
            for (int x = derechaBASE; x < length - 3; x++)
            {

                for (int i = x + 1; i < length - 1; i++)
                {
                    var indicesInner = new List<int>(copy);
                    if (indices.Count > 2)
                    {
                        indicesInner.Add(x);
                        indicesInner.Add(i);
                    }
                    else
                    {
                        indicesInner.Add(x);
                        indicesInner.Add(i);
                    }
                    var itemparaagregar = change(indicesInner, stringbase);
                    if (isValid(itemparaagregar))
                    {
                        foreach (var item in indicesInner)
                        {
                            Console.Write($"{item}-");
                        }
                        Console.WriteLine();
                        lista.Add(itemparaagregar);
                    }
                    else
                    {
                        //if(copy.Count> 0)
                        //copy.RemoveAt(copy.Count - 1);
                        //if(copy.Count==0)
                        //{
                        //    return;
                        //}
                        return;

                    }

                }

            }


        }
        void changePositionWithIndex(List<int> indices, int length)
        {


            //  indices.Add(izquierdaBASE);
            //indices.Add(derechaBASE);
            bool primervuelta = false;
            for (int x = derechaBASE; x < length - 3; x++)
            {

                for (int i = x + 1; i < length - 1; i++)
                {
                    var indicesInner = new List<int>(indices);
                    indicesInner.Add(x);
                    indicesInner.Add(i);
                    foreach (var item in indicesInner)
                    {
                        Console.Write($"{item}-");
                    }
                    Console.WriteLine();
                    lista.Add(change(indicesInner, stringbase));

                }

            }


        }
        void changePositionfinal(int izquierda, int derecha, int length)
        {
            int derechaIndex = derecha;
            var indices = new SortedSet<int>() { izquierda };
            var derechas = new List<int>() { };
          
            while (izquierda > 1)
            {
                indices = new SortedSet<int>() { izquierda };
                for (int i = derecha; i < length - 1; i++)
                {
                    var innderIndex = new List<int>(indices) { i };
                    foreach (var item in innderIndex)
                    {
                        Console.Write($"{item}-");
                    }
                    Console.WriteLine();
                    lista.Add(change(innderIndex, stringbase));
                }
                var last = lista.ToList()[lista.Count-1];
           var list=     fillit(izquierda, derecha-1);
                //if (izquierda == 4) {
                //    changePositionWithIzquierdaBase(new List<int>() { 4,6}, length);
                //    changePositionWithIzquierdaBase(new List<int>() { 4, 5 }, length);
                //}

                foreach (var item in list)
                {
                    if (izquierda == 3)
                    { 
                     Console.WriteLine();
                    }
                    changePositionWithIzquierdaBase(item.indices, length);
                    last = lista.ToList()[lista.Count - 1];
                    foreach (var hijo in item.hijos)
                    {
                        Console.WriteLine(hijo);
                        if (item.indices.Count > 2)
                            changePositionReverseBase(hijo.indices, derechaBASE + 2, length);
                        else
                        changePositionReverseBase(hijo.indices, derechaBASE + 1, length);
                        last = lista.ToList()[lista.Count - 1];
                    }
                }
                izquierda--;
            }


          }

    
        string change(List<int> index, string basestring)
        {

            char[] ch = basestring.ToCharArray();
            foreach (var item in index)
            {
                if (ch[item] == '(')
                {
                    ch[item] = ')';
                }
                else
                {
                    ch[item] = '(';
                }
            }
            string resultado = new string(ch);
            return resultado;

        }

        //string[] array = new string[] {  "(((()())))", "(((())()))", "(((()))())", "(((())))()", "((()(())))", "((()()()))", "((()())())", "((()()))()", "((())(()))", "((())()())", "((())())()", "((()))(())", "((()))()()", "(()((())))", "(()(()()))", "(()(())())", "(()(()))()", "(()()(()))", "(()()()())", "(()()())()", "(()())(())", "(()())()()", "(())((()))", "(())(()())", "(())(())()", "(())()(())", "(())()()()", "()(((())))", "()((()()))", "()((())())", "()((()))()", "()(()(()))", "()(()()())", "()(()())()", "()(())(())", "()(())()()", "()()((()))", "()()(()())", "()()(())()", "()()()(())", "()()()()()" };
        //string[] array = new string[] { "((()()))", "((())())", "((()))()", "(()(()))", "(()()())", "(()())()", "(())(())", "(())()()", "()((()))", "()(()())", "()(())()", "()()(())", "()()()()" };
        //string[] array = new string[] { "((((()()))))", "((((())())))", "((((()))()))", "((((())))())", "((((()))))()", "(((()(()))))", "(((()()())))", "(((()())()))", "(((()()))())", "(((()())))()", "(((())(())))", "(((())()()))", "(((())())())", "(((())()))()", "(((()))(()))", "(((()))()())", "(((()))())()", "(((())))(())", "(((())))()()", "((()((()))))", "((()(()())))", "((()(())()))", "((()(()))())", "((()(())))()", "((()()(())))", "((()()()()))", "((()()())())", "((()()()))()", "((()())(()))", "((()())()())", "((()())())()", "((()()))(())", "((()()))()()", "((())((())))", "((())(()()))", "((())(())())", "((())(()))()", "((())()(()))", "((())()()())", "((())()())()", "((())())(())", "((())())()()", "((()))((()))", "((()))(()())", "((()))(())()", "((()))()(())", "((()))()()()", "(()(((()))))", "(()((()())))", "(()((())()))", "(()((()))())", "(()((())))()", "(()(()(())))", "(()(()()()))", "(()(()())())", "(()(()()))()", "(()(())(()))", "(()(())()())", "(()(())())()", "(()(()))(())", "(()(()))()()", "(()()((())))", "(()()(()()))", "(()()(())())", "(()()(()))()", "(()()()(()))", "(()()()()())", "(()()()())()", "(()()())(())", "(()()())()()", "(()())((()))", "(()())(()())", "(()())(())()", "(()())()(())", "(()())()()()", "(())(((())))", "(())((()()))", "(())((())())", "(())((()))()", "(())(()(()))", "(())(()()())", "(())(()())()", "(())(())(())", "(())(())()()", "(())()((()))", "(())()(()())", "(())()(())()", "(())()()(())", "(())()()()()", "()((((()))))", "()(((()())))", "()(((())()))", "()(((()))())", "()(((())))()", "()((()(())))", "()((()()()))", "()((()())())", "()((()()))()", "()((())(()))", "()((())()())", "()((())())()", "()((()))(())", "()((()))()()", "()(()((())))", "()(()(()()))", "()(()(())())", "()(()(()))()", "()(()()(()))", "()(()()()())", "()(()()())()", "()(()())(())", "()(()())()()", "()(())((()))", "()(())(()())", "()(())(())()", "()(())()(())", "()(())()()()", "()()(((())))", "()()((()()))", "()()((())())", "()()((()))()", "()()(()(()))", "()()(()()())", "()()(()())()", "()()(())(())", "()()(())()()", "()()()((()))", "()()()(()())", "()()()(())()", "()()()()(())", "()()()()()()" };
        //string[] array = new string[] { "(()())", "(())()", "()(())", "()()()" };
        string[] array7 = new string[] { "(((((()())))))", "(((((())()))))", "(((((()))())))", "(((((())))()))", "(((((()))))())", "(((((())))))()", "((((()(())))))", "((((()()()))))", "((((()())())))", "((((()()))()))", "((((()())))())", "((((()()))))()", "((((())(()))))", "((((())()())))", "((((())())()))", "((((())()))())", "((((())())))()", "((((()))(())))", "((((()))()()))", "((((()))())())", "((((()))()))()", "((((())))(()))", "((((())))()())", "((((())))())()", "((((()))))(())", "((((()))))()()", "(((()((())))))", "(((()(()()))))", "(((()(())())))", "(((()(()))()))", "(((()(())))())", "(((()(()))))()", "(((()()(()))))", "(((()()()())))", "(((()()())()))", "(((()()()))())", "(((()()())))()", "(((()())(())))", "(((()())()()))", "(((()())())())", "(((()())()))()", "(((()()))(()))", "(((()()))()())", "(((()()))())()", "(((()())))(())", "(((()())))()()", "(((())((()))))", "(((())(()())))", "(((())(())()))", "(((())(()))())", "(((())(())))()", "(((())()(())))", "(((())()()()))", "(((())()())())", "(((())()()))()", "(((())())(()))", "(((())())()())", "(((())())())()", "(((())()))(())", "(((())()))()()", "(((()))((())))", "(((()))(()()))", "(((()))(())())", "(((()))(()))()", "(((()))()(()))", "(((()))()()())", "(((()))()())()", "(((()))())(())", "(((()))())()()", "(((())))((()))", "(((())))(()())", "(((())))(())()", "(((())))()(())", "(((())))()()()", "((()(((())))))", "((()((()()))))", "((()((())())))", "((()((()))()))", "((()((())))())", "((()((()))))()", "((()(()(()))))", "((()(()()())))", "((()(()())()))", "((()(()()))())", "((()(()())))()", "((()(())(())))", "((()(())()()))", "((()(())())())", "((()(())()))()", "((()(()))(()))", "((()(()))()())", "((()(()))())()", "((()(())))(())", "((()(())))()()", "((()()((()))))", "((()()(()())))", "((()()(())()))", "((()()(()))())", "((()()(())))()", "((()()()(())))", "((()()()()()))", "((()()()())())", "((()()()()))()", "((()()())(()))", "((()()())()())", "((()()())())()", "((()()()))(())", "((()()()))()()", "((()())((())))", "((()())(()()))", "((()())(())())", "((()())(()))()", "((()())()(()))", "((()())()()())", "((()())()())()", "((()())())(())", "((()())())()()", "((()()))((()))", "((()()))(()())", "((()()))(())()", "((()()))()(())", "((()()))()()()", "((())(((()))))", "((())((()())))", "((())((())()))", "((())((()))())", "((())((())))()", "((())(()(())))", "((())(()()()))", "((())(()())())", "((())(()()))()", "((())(())(()))", "((())(())()())", "((())(())())()", "((())(()))(())", "((())(()))()()", "((())()((())))", "((())()(()()))", "((())()(())())", "((())()(()))()", "((())()()(()))", "((())()()()())", "((())()()())()", "((())()())(())", "((())()())()()", "((())())((()))", "((())())(()())", "((())())(())()", "((())())()(())", "((())())()()()", "((()))(((())))", "((()))((()()))", "((()))((())())", "((()))((()))()", "((()))(()(()))", "((()))(()()())", "((()))(()())()", "((()))(())(())", "((()))(())()()", "((()))()((()))", "((()))()(()())", "((()))()(())()", "((()))()()(())", "((()))()()()()", "(()((((())))))", "(()(((()()))))", "(()(((())())))", "(()(((()))()))", "(()(((())))())", "(()(((()))))()", "(()((()(()))))", "(()((()()())))", "(()((()())()))", "(()((()()))())", "(()((()())))()", "(()((())(())))", "(()((())()()))", "(()((())())())", "(()((())()))()", "(()((()))(()))", "(()((()))()())", "(()((()))())()", "(()((())))(())", "(()((())))()()", "(()(()((()))))", "(()(()(()())))", "(()(()(())()))", "(()(()(()))())", "(()(()(())))()", "(()(()()(())))", "(()(()()()()))", "(()(()()())())", "(()(()()()))()", "(()(()())(()))", "(()(()())()())", "(()(()())())()", "(()(()()))(())", "(()(()()))()()", "(()(())((())))", "(()(())(()()))", "(()(())(())())", "(()(())(()))()", "(()(())()(()))", "(()(())()()())", "(()(())()())()", "(()(())())(())", "(()(())())()()", "(()(()))((()))", "(()(()))(()())", "(()(()))(())()", "(()(()))()(())", "(()(()))()()()", "(()()(((()))))", "(()()((()())))", "(()()((())()))", "(()()((()))())", "(()()((())))()", "(()()(()(())))", "(()()(()()()))", "(()()(()())())", "(()()(()()))()", "(()()(())(()))", "(()()(())()())", "(()()(())())()", "(()()(()))(())", "(()()(()))()()", "(()()()((())))", "(()()()(()()))", "(()()()(())())", "(()()()(()))()", "(()()()()(()))", "(()()()()()())", "(()()()()())()", "(()()()())(())", "(()()()())()()", "(()()())((()))", "(()()())(()())", "(()()())(())()", "(()()())()(())", "(()()())()()()", "(()())(((())))", "(()())((()()))", "(()())((())())", "(()())((()))()", "(()())(()(()))", "(()())(()()())", "(()())(()())()", "(()())(())(())", "(()())(())()()", "(()())()((()))", "(()())()(()())", "(()())()(())()", "(()())()()(())", "(()())()()()()", "(())((((()))))", "(())(((()())))", "(())(((())()))", "(())(((()))())", "(())(((())))()", "(())((()(())))", "(())((()()()))", "(())((()())())", "(())((()()))()", "(())((())(()))", "(())((())()())", "(())((())())()", "(())((()))(())", "(())((()))()()", "(())(()((())))", "(())(()(()()))", "(())(()(())())", "(())(()(()))()", "(())(()()(()))", "(())(()()()())", "(())(()()())()", "(())(()())(())", "(())(()())()()", "(())(())((()))", "(())(())(()())", "(())(())(())()", "(())(())()(())", "(())(())()()()", "(())()(((())))", "(())()((()()))", "(())()((())())", "(())()((()))()", "(())()(()(()))", "(())()(()()())", "(())()(()())()", "(())()(())(())", "(())()(())()()", "(())()()((()))", "(())()()(()())", "(())()()(())()", "(())()()()(())", "(())()()()()()", "()(((((())))))", "()((((()()))))", "()((((())())))", "()((((()))()))", "()((((())))())", "()((((()))))()", "()(((()(()))))", "()(((()()())))", "()(((()())()))", "()(((()()))())", "()(((()())))()", "()(((())(())))", "()(((())()()))", "()(((())())())", "()(((())()))()", "()(((()))(()))", "()(((()))()())", "()(((()))())()", "()(((())))(())", "()(((())))()()", "()((()((()))))", "()((()(()())))", "()((()(())()))", "()((()(()))())", "()((()(())))()", "()((()()(())))", "()((()()()()))", "()((()()())())", "()((()()()))()", "()((()())(()))", "()((()())()())", "()((()())())()", "()((()()))(())", "()((()()))()()", "()((())((())))", "()((())(()()))", "()((())(())())", "()((())(()))()", "()((())()(()))", "()((())()()())", "()((())()())()", "()((())())(())", "()((())())()()", "()((()))((()))", "()((()))(()())", "()((()))(())()", "()((()))()(())", "()((()))()()()", "()(()(((()))))", "()(()((()())))", "()(()((())()))", "()(()((()))())", "()(()((())))()", "()(()(()(())))", "()(()(()()()))", "()(()(()())())", "()(()(()()))()", "()(()(())(()))", "()(()(())()())", "()(()(())())()", "()(()(()))(())", "()(()(()))()()", "()(()()((())))", "()(()()(()()))", "()(()()(())())", "()(()()(()))()", "()(()()()(()))", "()(()()()()())", "()(()()()())()", "()(()()())(())", "()(()()())()()", "()(()())((()))", "()(()())(()())", "()(()())(())()", "()(()())()(())", "()(()())()()()", "()(())(((())))", "()(())((()()))", "()(())((())())", "()(())((()))()", "()(())(()(()))", "()(())(()()())", "()(())(()())()", "()(())(())(())", "()(())(())()()", "()(())()((()))", "()(())()(()())", "()(())()(())()", "()(())()()(())", "()(())()()()()", "()()((((()))))", "()()(((()())))", "()()(((())()))", "()()(((()))())", "()()(((())))()", "()()((()(())))", "()()((()()()))", "()()((()())())", "()()((()()))()", "()()((())(()))", "()()((())()())", "()()((())())()", "()()((()))(())", "()()((()))()()", "()()(()((())))", "()()(()(()()))", "()()(()(())())", "()()(()(()))()", "()()(()()(()))", "()()(()()()())", "()()(()()())()", "()()(()())(())", "()()(()())()()", "()()(())((()))", "()()(())(()())", "()()(())(())()", "()()(())()(())", "()()(())()()()", "()()()(((())))", "()()()((()()))", "()()()((())())", "()()()((()))()", "()()()(()(()))", "()()()(()()())", "()()()(()())()", "()()()(())(())", "()()()(())()()", "()()()()((()))", "()()()()(()())", "()()()()(())()", "()()()()()(())", "()()()()()()()" };
       // string[] array = new string[] { "((((((()()))))))","((((((())())))))","((((((()))()))))","((((((())))())))","((((((()))))()))","((((((())))))())","((((((()))))))()","(((((()(()))))))","(((((()()())))))","(((((()())()))))","(((((()()))())))","(((((()())))()))","(((((()()))))())","(((((()())))))()","(((((())(())))))","(((((())()()))))","(((((())())())))","(((((())()))()))","(((((())())))())","(((((())()))))()","(((((()))(()))))","(((((()))()())))","(((((()))())()))","(((((()))()))())","(((((()))())))()","(((((())))(())))","(((((())))()()))","(((((())))())())","(((((())))()))()","(((((()))))(()))","(((((()))))()())","(((((()))))())()","(((((())))))(())","(((((())))))()()","((((()((()))))))","((((()(()())))))","((((()(())()))))","((((()(()))())))","((((()(())))()))","((((()(()))))())","((((()(())))))()","((((()()(())))))","((((()()()()))))","((((()()())())))","((((()()()))()))","((((()()())))())","((((()()()))))()","((((()())(()))))","((((()())()())))","((((()())())()))","((((()())()))())","((((()())())))()","((((()()))(())))","((((()()))()()))","((((()()))())())","((((()()))()))()","((((()())))(()))","((((()())))()())","((((()())))())()","((((()()))))(())","((((()()))))()()","((((())((())))))","((((())(()()))))","((((())(())())))","((((())(()))()))","((((())(())))())","((((())(()))))()","((((())()(()))))","((((())()()())))","((((())()())()))","((((())()()))())","((((())()())))()","((((())())(())))","((((())())()()))","((((())())())())","((((())())()))()","((((())()))(()))","((((())()))()())","((((())()))())()","((((())())))(())","((((())())))()()","((((()))((()))))","((((()))(()())))","((((()))(())()))","((((()))(()))())","((((()))(())))()","((((()))()(())))","((((()))()()()))","((((()))()())())","((((()))()()))()","((((()))())(()))","((((()))())()())","((((()))())())()","((((()))()))(())","((((()))()))()()","((((())))((())))","((((())))(()()))","((((())))(())())","((((())))(()))()","((((())))()(()))","((((())))()()())","((((())))()())()","((((())))())(())","((((())))())()()","((((()))))((()))","((((()))))(()())","((((()))))(())()","((((()))))()(())","((((()))))()()()","(((()(((()))))))","(((()((()())))))","(((()((())()))))","(((()((()))())))","(((()((())))()))","(((()((()))))())","(((()((())))))()","(((()(()(())))))","(((()(()()()))))","(((()(()())())))","(((()(()()))()))","(((()(()())))())","(((()(()()))))()","(((()(())(()))))","(((()(())()())))","(((()(())())()))","(((()(())()))())","(((()(())())))()","(((()(()))(())))","(((()(()))()()))","(((()(()))())())","(((()(()))()))()","(((()(())))(()))","(((()(())))()())","(((()(())))())()","(((()(()))))(())","(((()(()))))()()","(((()()((())))))","(((()()(()()))))","(((()()(())())))","(((()()(()))()))","(((()()(())))())","(((()()(()))))()","(((()()()(()))))","(((()()()()())))","(((()()()())()))","(((()()()()))())","(((()()()())))()","(((()()())(())))","(((()()())()()))","(((()()())())())","(((()()())()))()","(((()()()))(()))","(((()()()))()())","(((()()()))())()","(((()()())))(())","(((()()())))()()","(((()())((()))))","(((()())(()())))","(((()())(())()))","(((()())(()))())","(((()())(())))()","(((()())()(())))","(((()())()()()))","(((()())()())())","(((()())()()))()","(((()())())(()))","(((()())())()())","(((()())())())()","(((()())()))(())","(((()())()))()()","(((()()))((())))","(((()()))(()()))","(((()()))(())())","(((()()))(()))()","(((()()))()(()))","(((()()))()()())","(((()()))()())()","(((()()))())(())","(((()()))())()()","(((()())))((()))","(((()())))(()())","(((()())))(())()","(((()())))()(())","(((()())))()()()","(((())(((())))))","(((())((()()))))","(((())((())())))","(((())((()))()))","(((())((())))())","(((())((()))))()","(((())(()(()))))","(((())(()()())))","(((())(()())()))","(((())(()()))())","(((())(()())))()","(((())(())(())))","(((())(())()()))","(((())(())())())","(((())(())()))()","(((())(()))(()))","(((())(()))()())","(((())(()))())()","(((())(())))(())","(((())(())))()()","(((())()((()))))","(((())()(()())))","(((())()(())()))","(((())()(()))())","(((())()(())))()","(((())()()(())))","(((())()()()()))","(((())()()())())","(((())()()()))()","(((())()())(()))","(((())()())()())","(((())()())())()","(((())()()))(())","(((())()()))()()","(((())())((())))","(((())())(()()))","(((())())(())())","(((())())(()))()","(((())())()(()))","(((())())()()())","(((())())()())()","(((())())())(())","(((())())())()()","(((())()))((()))","(((())()))(()())","(((())()))(())()","(((())()))()(())","(((())()))()()()","(((()))(((()))))","(((()))((()())))","(((()))((())()))","(((()))((()))())","(((()))((())))()","(((()))(()(())))","(((()))(()()()))","(((()))(()())())","(((()))(()()))()","(((()))(())(()))","(((()))(())()())","(((()))(())())()","(((()))(()))(())","(((()))(()))()()","(((()))()((())))","(((()))()(()()))","(((()))()(())())","(((()))()(()))()","(((()))()()(()))","(((()))()()()())","(((()))()()())()","(((()))()())(())","(((()))()())()()","(((()))())((()))","(((()))())(()())","(((()))())(())()","(((()))())()(())","(((()))())()()()","(((())))(((())))","(((())))((()()))","(((())))((())())","(((())))((()))()","(((())))(()(()))","(((())))(()()())","(((())))(()())()","(((())))(())(())","(((())))(())()()","(((())))()((()))","(((())))()(()())","(((())))()(())()","(((())))()()(())","(((())))()()()()","((()((((()))))))","((()(((()())))))","((()(((())()))))","((()(((()))())))","((()(((())))()))","((()(((()))))())","((()(((())))))()","((()((()(())))))","((()((()()()))))","((()((()())())))","((()((()()))()))","((()((()())))())","((()((()()))))()","((()((())(()))))","((()((())()())))","((()((())())()))","((()((())()))())","((()((())())))()","((()((()))(())))","((()((()))()()))","((()((()))())())","((()((()))()))()","((()((())))(()))","((()((())))()())","((()((())))())()","((()((()))))(())","((()((()))))()()","((()(()((())))))","((()(()(()()))))","((()(()(())())))","((()(()(()))()))","((()(()(())))())","((()(()(()))))()","((()(()()(()))))","((()(()()()())))","((()(()()())()))","((()(()()()))())","((()(()()())))()","((()(()())(())))","((()(()())()()))","((()(()())())())","((()(()())()))()","((()(()()))(()))","((()(()()))()())","((()(()()))())()","((()(()())))(())","((()(()())))()()","((()(())((()))))","((()(())(()())))","((()(())(())()))","((()(())(()))())","((()(())(())))()","((()(())()(())))","((()(())()()()))","((()(())()())())","((()(())()()))()","((()(())())(()))","((()(())())()())","((()(())())())()","((()(())()))(())","((()(())()))()()","((()(()))((())))","((()(()))(()()))","((()(()))(())())","((()(()))(()))()","((()(()))()(()))","((()(()))()()())","((()(()))()())()","((()(()))())(())","((()(()))())()()","((()(())))((()))","((()(())))(()())","((()(())))(())()","((()(())))()(())","((()(())))()()()","((()()(((())))))","((()()((()()))))","((()()((())())))","((()()((()))()))","((()()((())))())","((()()((()))))()","((()()(()(()))))","((()()(()()())))","((()()(()())()))","((()()(()()))())","((()()(()())))()","((()()(())(())))","((()()(())()()))","((()()(())())())","((()()(())()))()","((()()(()))(()))","((()()(()))()())","((()()(()))())()","((()()(())))(())","((()()(())))()()","((()()()((()))))","((()()()(()())))","((()()()(())()))","((()()()(()))())","((()()()(())))()","((()()()()(())))","((()()()()()()))","((()()()()())())","((()()()()()))()","((()()()())(()))","((()()()())()())","((()()()())())()","((()()()()))(())","((()()()()))()()","((()()())((())))","((()()())(()()))","((()()())(())())","((()()())(()))()","((()()())()(()))","((()()())()()())","((()()())()())()","((()()())())(())","((()()())())()()","((()()()))((()))","((()()()))(()())","((()()()))(())()","((()()()))()(())","((()()()))()()()","((()())(((()))))","((()())((()())))","((()())((())()))","((()())((()))())","((()())((())))()","((()())(()(())))","((()())(()()()))","((()())(()())())","((()())(()()))()","((()())(())(()))","((()())(())()())","((()())(())())()","((()())(()))(())","((()())(()))()()","((()())()((())))","((()())()(()()))","((()())()(())())","((()())()(()))()","((()())()()(()))","((()())()()()())","((()())()()())()","((()())()())(())","((()())()())()()","((()())())((()))","((()())())(()())","((()())())(())()","((()())())()(())","((()())())()()()","((()()))(((())))","((()()))((()()))","((()()))((())())","((()()))((()))()","((()()))(()(()))","((()()))(()()())","((()()))(()())()","((()()))(())(())","((()()))(())()()","((()()))()((()))","((()()))()(()())","((()()))()(())()","((()()))()()(())","((()()))()()()()","((())((((())))))","((())(((()()))))","((())(((())())))","((())(((()))()))","((())(((())))())","((())(((()))))()","((())((()(()))))","((())((()()())))","((())((()())()))","((())((()()))())","((())((()())))()","((())((())(())))","((())((())()()))","((())((())())())","((())((())()))()","((())((()))(()))","((())((()))()())","((())((()))())()","((())((())))(())","((())((())))()()","((())(()((()))))","((())(()(()())))","((())(()(())()))","((())(()(()))())","((())(()(())))()","((())(()()(())))","((())(()()()()))","((())(()()())())","((())(()()()))()","((())(()())(()))","((())(()())()())","((())(()())())()","((())(()()))(())","((())(()()))()()","((())(())((())))","((())(())(()()))","((())(())(())())","((())(())(()))()","((())(())()(()))","((())(())()()())","((())(())()())()","((())(())())(())","((())(())())()()","((())(()))((()))","((())(()))(()())","((())(()))(())()","((())(()))()(())","((())(()))()()()","((())()(((()))))","((())()((()())))","((())()((())()))","((())()((()))())","((())()((())))()","((())()(()(())))","((())()(()()()))","((())()(()())())","((())()(()()))()","((())()(())(()))","((())()(())()())","((())()(())())()","((())()(()))(())","((())()(()))()()","((())()()((())))","((())()()(()()))","((())()()(())())","((())()()(()))()","((())()()()(()))","((())()()()()())","((())()()()())()","((())()()())(())","((())()()())()()","((())()())((()))","((())()())(()())","((())()())(())()","((())()())()(())","((())()())()()()","((())())(((())))","((())())((()()))","((())())((())())","((())())((()))()","((())())(()(()))","((())())(()()())","((())())(()())()","((())())(())(())","((())())(())()()","((())())()((()))","((())())()(()())","((())())()(())()","((())())()()(())","((())())()()()()","((()))((((()))))","((()))(((()())))","((()))(((())()))","((()))(((()))())","((()))(((())))()","((()))((()(())))","((()))((()()()))","((()))((()())())","((()))((()()))()","((()))((())(()))","((()))((())()())","((()))((())())()","((()))((()))(())","((()))((()))()()","((()))(()((())))","((()))(()(()()))","((()))(()(())())","((()))(()(()))()","((()))(()()(()))","((()))(()()()())","((()))(()()())()","((()))(()())(())","((()))(()())()()","((()))(())((()))","((()))(())(()())","((()))(())(())()","((()))(())()(())","((()))(())()()()","((()))()(((())))","((()))()((()()))","((()))()((())())","((()))()((()))()","((()))()(()(()))","((()))()(()()())","((()))()(()())()","((()))()(())(())","((()))()(())()()","((()))()()((()))","((()))()()(()())","((()))()()(())()","((()))()()()(())","((()))()()()()()","(()(((((()))))))","(()((((()())))))","(()((((())()))))","(()((((()))())))","(()((((())))()))","(()((((()))))())","(()((((())))))()","(()(((()(())))))","(()(((()()()))))","(()(((()())())))","(()(((()()))()))","(()(((()())))())","(()(((()()))))()","(()(((())(()))))","(()(((())()())))","(()(((())())()))","(()(((())()))())","(()(((())())))()","(()(((()))(())))","(()(((()))()()))","(()(((()))())())","(()(((()))()))()","(()(((())))(()))","(()(((())))()())","(()(((())))())()","(()(((()))))(())","(()(((()))))()()","(()((()((())))))","(()((()(()()))))","(()((()(())())))","(()((()(()))()))","(()((()(())))())","(()((()(()))))()","(()((()()(()))))","(()((()()()())))","(()((()()())()))","(()((()()()))())","(()((()()())))()","(()((()())(())))","(()((()())()()))","(()((()())())())","(()((()())()))()","(()((()()))(()))","(()((()()))()())","(()((()()))())()","(()((()())))(())","(()((()())))()()","(()((())((()))))","(()((())(()())))","(()((())(())()))","(()((())(()))())","(()((())(())))()","(()((())()(())))","(()((())()()()))","(()((())()())())","(()((())()()))()","(()((())())(()))","(()((())())()())","(()((())())())()","(()((())()))(())","(()((())()))()()","(()((()))((())))","(()((()))(()()))","(()((()))(())())","(()((()))(()))()","(()((()))()(()))","(()((()))()()())","(()((()))()())()","(()((()))())(())","(()((()))())()()","(()((())))((()))","(()((())))(()())","(()((())))(())()","(()((())))()(())","(()((())))()()()","(()(()(((())))))","(()(()((()()))))","(()(()((())())))","(()(()((()))()))","(()(()((())))())","(()(()((()))))()","(()(()(()(()))))","(()(()(()()())))","(()(()(()())()))","(()(()(()()))())","(()(()(()())))()","(()(()(())(())))","(()(()(())()()))","(()(()(())())())","(()(()(())()))()","(()(()(()))(()))","(()(()(()))()())","(()(()(()))())()","(()(()(())))(())","(()(()(())))()()","(()(()()((()))))","(()(()()(()())))","(()(()()(())()))","(()(()()(()))())","(()(()()(())))()","(()(()()()(())))","(()(()()()()()))","(()(()()()())())","(()(()()()()))()","(()(()()())(()))","(()(()()())()())","(()(()()())())()","(()(()()()))(())","(()(()()()))()()","(()(()())((())))","(()(()())(()()))","(()(()())(())())","(()(()())(()))()","(()(()())()(()))","(()(()())()()())","(()(()())()())()","(()(()())())(())","(()(()())())()()","(()(()()))((()))","(()(()()))(()())","(()(()()))(())()","(()(()()))()(())","(()(()()))()()()","(()(())(((()))))","(()(())((()())))","(()(())((())()))","(()(())((()))())","(()(())((())))()","(()(())(()(())))","(()(())(()()()))","(()(())(()())())","(()(())(()()))()","(()(())(())(()))","(()(())(())()())","(()(())(())())()","(()(())(()))(())","(()(())(()))()()","(()(())()((())))","(()(())()(()()))","(()(())()(())())","(()(())()(()))()","(()(())()()(()))","(()(())()()()())","(()(())()()())()","(()(())()())(())","(()(())()())()()","(()(())())((()))","(()(())())(()())","(()(())())(())()","(()(())())()(())","(()(())())()()()","(()(()))(((())))","(()(()))((()()))","(()(()))((())())","(()(()))((()))()","(()(()))(()(()))","(()(()))(()()())","(()(()))(()())()","(()(()))(())(())","(()(()))(())()()","(()(()))()((()))","(()(()))()(()())","(()(()))()(())()","(()(()))()()(())","(()(()))()()()()","(()()((((())))))","(()()(((()()))))","(()()(((())())))","(()()(((()))()))","(()()(((())))())","(()()(((()))))()","(()()((()(()))))","(()()((()()())))","(()()((()())()))","(()()((()()))())","(()()((()())))()","(()()((())(())))","(()()((())()()))","(()()((())())())","(()()((())()))()","(()()((()))(()))","(()()((()))()())","(()()((()))())()","(()()((())))(())","(()()((())))()()","(()()(()((()))))","(()()(()(()())))","(()()(()(())()))","(()()(()(()))())","(()()(()(())))()","(()()(()()(())))","(()()(()()()()))","(()()(()()())())","(()()(()()()))()","(()()(()())(()))","(()()(()())()())","(()()(()())())()","(()()(()()))(())","(()()(()()))()()","(()()(())((())))","(()()(())(()()))","(()()(())(())())","(()()(())(()))()","(()()(())()(()))","(()()(())()()())","(()()(())()())()","(()()(())())(())","(()()(())())()()","(()()(()))((()))","(()()(()))(()())","(()()(()))(())()","(()()(()))()(())","(()()(()))()()()","(()()()(((()))))","(()()()((()())))","(()()()((())()))","(()()()((()))())","(()()()((())))()","(()()()(()(())))","(()()()(()()()))","(()()()(()())())","(()()()(()()))()","(()()()(())(()))","(()()()(())()())","(()()()(())())()","(()()()(()))(())","(()()()(()))()()","(()()()()((())))","(()()()()(()()))","(()()()()(())())","(()()()()(()))()","(()()()()()(()))","(()()()()()()())","(()()()()()())()","(()()()()())(())","(()()()()())()()","(()()()())((()))","(()()()())(()())","(()()()())(())()","(()()()())()(())","(()()()())()()()","(()()())(((())))","(()()())((()()))","(()()())((())())","(()()())((()))()","(()()())(()(()))","(()()())(()()())","(()()())(()())()","(()()())(())(())","(()()())(())()()","(()()())()((()))","(()()())()(()())","(()()())()(())()","(()()())()()(())","(()()())()()()()","(()())((((()))))","(()())(((()())))","(()())(((())()))","(()())(((()))())","(()())(((())))()","(()())((()(())))","(()())((()()()))","(()())((()())())","(()())((()()))()","(()())((())(()))","(()())((())()())","(()())((())())()","(()())((()))(())","(()())((()))()()","(()())(()((())))","(()())(()(()()))","(()())(()(())())","(()())(()(()))()","(()())(()()(()))","(()())(()()()())","(()())(()()())()","(()())(()())(())","(()())(()())()()","(()())(())((()))","(()())(())(()())","(()())(())(())()","(()())(())()(())","(()())(())()()()","(()())()(((())))","(()())()((()()))","(()())()((())())","(()())()((()))()","(()())()(()(()))","(()())()(()()())","(()())()(()())()","(()())()(())(())","(()())()(())()()","(()())()()((()))","(()())()()(()())","(()())()()(())()","(()())()()()(())","(()())()()()()()","(())(((((())))))","(())((((()()))))","(())((((())())))","(())((((()))()))","(())((((())))())","(())((((()))))()","(())(((()(()))))","(())(((()()())))","(())(((()())()))","(())(((()()))())","(())(((()())))()","(())(((())(())))","(())(((())()()))","(())(((())())())","(())(((())()))()","(())(((()))(()))","(())(((()))()())","(())(((()))())()","(())(((())))(())","(())(((())))()()","(())((()((()))))","(())((()(()())))","(())((()(())()))","(())((()(()))())","(())((()(())))()","(())((()()(())))","(())((()()()()))","(())((()()())())","(())((()()()))()","(())((()())(()))","(())((()())()())","(())((()())())()","(())((()()))(())","(())((()()))()()","(())((())((())))","(())((())(()()))","(())((())(())())","(())((())(()))()","(())((())()(()))","(())((())()()())","(())((())()())()","(())((())())(())","(())((())())()()","(())((()))((()))","(())((()))(()())","(())((()))(())()","(())((()))()(())","(())((()))()()()","(())(()(((()))))","(())(()((()())))","(())(()((())()))","(())(()((()))())","(())(()((())))()","(())(()(()(())))","(())(()(()()()))","(())(()(()())())","(())(()(()()))()","(())(()(())(()))","(())(()(())()())","(())(()(())())()","(())(()(()))(())","(())(()(()))()()","(())(()()((())))","(())(()()(()()))","(())(()()(())())","(())(()()(()))()","(())(()()()(()))","(())(()()()()())","(())(()()()())()","(())(()()())(())","(())(()()())()()","(())(()())((()))","(())(()())(()())","(())(()())(())()","(())(()())()(())","(())(()())()()()","(())(())(((())))","(())(())((()()))","(())(())((())())","(())(())((()))()","(())(())(()(()))","(())(())(()()())","(())(())(()())()","(())(())(())(())","(())(())(())()()","(())(())()((()))","(())(())()(()())","(())(())()(())()","(())(())()()(())","(())(())()()()()","(())()((((()))))","(())()(((()())))","(())()(((())()))","(())()(((()))())","(())()(((())))()","(())()((()(())))","(())()((()()()))","(())()((()())())","(())()((()()))()","(())()((())(()))","(())()((())()())","(())()((())())()","(())()((()))(())","(())()((()))()()","(())()(()((())))","(())()(()(()()))","(())()(()(())())","(())()(()(()))()","(())()(()()(()))","(())()(()()()())","(())()(()()())()","(())()(()())(())","(())()(()())()()","(())()(())((()))","(())()(())(()())","(())()(())(())()","(())()(())()(())","(())()(())()()()","(())()()(((())))","(())()()((()()))","(())()()((())())","(())()()((()))()","(())()()(()(()))","(())()()(()()())","(())()()(()())()","(())()()(())(())","(())()()(())()()","(())()()()((()))","(())()()()(()())","(())()()()(())()","(())()()()()(())","(())()()()()()()","()((((((()))))))","()(((((()())))))","()(((((())()))))","()(((((()))())))","()(((((())))()))","()(((((()))))())","()(((((())))))()","()((((()(())))))","()((((()()()))))","()((((()())())))","()((((()()))()))","()((((()())))())","()((((()()))))()","()((((())(()))))","()((((())()())))","()((((())())()))","()((((())()))())","()((((())())))()","()((((()))(())))","()((((()))()()))","()((((()))())())","()((((()))()))()","()((((())))(()))","()((((())))()())","()((((())))())()","()((((()))))(())","()((((()))))()()","()(((()((())))))","()(((()(()()))))","()(((()(())())))","()(((()(()))()))","()(((()(())))())","()(((()(()))))()","()(((()()(()))))","()(((()()()())))","()(((()()())()))","()(((()()()))())","()(((()()())))()","()(((()())(())))","()(((()())()()))","()(((()())())())","()(((()())()))()","()(((()()))(()))","()(((()()))()())","()(((()()))())()","()(((()())))(())","()(((()())))()()","()(((())((()))))","()(((())(()())))","()(((())(())()))","()(((())(()))())","()(((())(())))()","()(((())()(())))","()(((())()()()))","()(((())()())())","()(((())()()))()","()(((())())(()))","()(((())())()())","()(((())())())()","()(((())()))(())","()(((())()))()()","()(((()))((())))","()(((()))(()()))","()(((()))(())())","()(((()))(()))()","()(((()))()(()))","()(((()))()()())","()(((()))()())()","()(((()))())(())","()(((()))())()()","()(((())))((()))","()(((())))(()())","()(((())))(())()","()(((())))()(())","()(((())))()()()","()((()(((())))))","()((()((()()))))","()((()((())())))","()((()((()))()))","()((()((())))())","()((()((()))))()","()((()(()(()))))","()((()(()()())))","()((()(()())()))","()((()(()()))())","()((()(()())))()","()((()(())(())))","()((()(())()()))","()((()(())())())","()((()(())()))()","()((()(()))(()))","()((()(()))()())","()((()(()))())()","()((()(())))(())","()((()(())))()()","()((()()((()))))","()((()()(()())))","()((()()(())()))","()((()()(()))())","()((()()(())))()","()((()()()(())))","()((()()()()()))","()((()()()())())","()((()()()()))()","()((()()())(()))","()((()()())()())","()((()()())())()","()((()()()))(())","()((()()()))()()","()((()())((())))","()((()())(()()))","()((()())(())())","()((()())(()))()","()((()())()(()))","()((()())()()())","()((()())()())()","()((()())())(())","()((()())())()()","()((()()))((()))","()((()()))(()())","()((()()))(())()","()((()()))()(())","()((()()))()()()","()((())(((()))))","()((())((()())))","()((())((())()))","()((())((()))())","()((())((())))()","()((())(()(())))","()((())(()()()))","()((())(()())())","()((())(()()))()","()((())(())(()))","()((())(())()())","()((())(())())()","()((())(()))(())","()((())(()))()()","()((())()((())))","()((())()(()()))","()((())()(())())","()((())()(()))()","()((())()()(()))","()((())()()()())","()((())()()())()","()((())()())(())","()((())()())()()","()((())())((()))","()((())())(()())","()((())())(())()","()((())())()(())","()((())())()()()","()((()))(((())))","()((()))((()()))","()((()))((())())","()((()))((()))()","()((()))(()(()))","()((()))(()()())","()((()))(()())()","()((()))(())(())","()((()))(())()()","()((()))()((()))","()((()))()(()())","()((()))()(())()","()((()))()()(())","()((()))()()()()","()(()((((())))))","()(()(((()()))))","()(()(((())())))","()(()(((()))()))","()(()(((())))())","()(()(((()))))()","()(()((()(()))))","()(()((()()())))","()(()((()())()))","()(()((()()))())","()(()((()())))()","()(()((())(())))","()(()((())()()))","()(()((())())())","()(()((())()))()","()(()((()))(()))","()(()((()))()())","()(()((()))())()","()(()((())))(())","()(()((())))()()","()(()(()((()))))","()(()(()(()())))","()(()(()(())()))","()(()(()(()))())","()(()(()(())))()","()(()(()()(())))","()(()(()()()()))","()(()(()()())())","()(()(()()()))()","()(()(()())(()))","()(()(()())()())","()(()(()())())()","()(()(()()))(())","()(()(()()))()()","()(()(())((())))","()(()(())(()()))","()(()(())(())())","()(()(())(()))()","()(()(())()(()))","()(()(())()()())","()(()(())()())()","()(()(())())(())","()(()(())())()()","()(()(()))((()))","()(()(()))(()())","()(()(()))(())()","()(()(()))()(())","()(()(()))()()()","()(()()(((()))))","()(()()((()())))","()(()()((())()))","()(()()((()))())","()(()()((())))()","()(()()(()(())))","()(()()(()()()))","()(()()(()())())","()(()()(()()))()","()(()()(())(()))","()(()()(())()())","()(()()(())())()","()(()()(()))(())","()(()()(()))()()","()(()()()((())))","()(()()()(()()))","()(()()()(())())","()(()()()(()))()","()(()()()()(()))","()(()()()()()())","()(()()()()())()","()(()()()())(())","()(()()()())()()","()(()()())((()))","()(()()())(()())","()(()()())(())()","()(()()())()(())","()(()()())()()()","()(()())(((())))","()(()())((()()))","()(()())((())())","()(()())((()))()","()(()())(()(()))","()(()())(()()())","()(()())(()())()","()(()())(())(())","()(()())(())()()","()(()())()((()))","()(()())()(()())","()(()())()(())()","()(()())()()(())","()(()())()()()()","()(())((((()))))","()(())(((()())))","()(())(((())()))","()(())(((()))())","()(())(((())))()","()(())((()(())))","()(())((()()()))","()(())((()())())","()(())((()()))()","()(())((())(()))","()(())((())()())","()(())((())())()","()(())((()))(())","()(())((()))()()","()(())(()((())))","()(())(()(()()))","()(())(()(())())","()(())(()(()))()","()(())(()()(()))","()(())(()()()())","()(())(()()())()","()(())(()())(())","()(())(()())()()","()(())(())((()))","()(())(())(()())","()(())(())(())()","()(())(())()(())","()(())(())()()()","()(())()(((())))","()(())()((()()))","()(())()((())())","()(())()((()))()","()(())()(()(()))","()(())()(()()())","()(())()(()())()","()(())()(())(())","()(())()(())()()","()(())()()((()))","()(())()()(()())","()(())()()(())()","()(())()()()(())","()(())()()()()()","()()(((((())))))","()()((((()()))))","()()((((())())))","()()((((()))()))","()()((((())))())","()()((((()))))()","()()(((()(()))))","()()(((()()())))","()()(((()())()))","()()(((()()))())","()()(((()())))()","()()(((())(())))","()()(((())()()))","()()(((())())())","()()(((())()))()","()()(((()))(()))","()()(((()))()())","()()(((()))())()","()()(((())))(())","()()(((())))()()","()()((()((()))))","()()((()(()())))","()()((()(())()))","()()((()(()))())","()()((()(())))()","()()((()()(())))","()()((()()()()))","()()((()()())())","()()((()()()))()","()()((()())(()))","()()((()())()())","()()((()())())()","()()((()()))(())","()()((()()))()()","()()((())((())))","()()((())(()()))","()()((())(())())","()()((())(()))()","()()((())()(()))","()()((())()()())","()()((())()())()","()()((())())(())","()()((())())()()","()()((()))((()))","()()((()))(()())","()()((()))(())()","()()((()))()(())","()()((()))()()()","()()(()(((()))))","()()(()((()())))","()()(()((())()))","()()(()((()))())","()()(()((())))()","()()(()(()(())))","()()(()(()()()))","()()(()(()())())","()()(()(()()))()","()()(()(())(()))","()()(()(())()())","()()(()(())())()","()()(()(()))(())","()()(()(()))()()","()()(()()((())))","()()(()()(()()))","()()(()()(())())","()()(()()(()))()","()()(()()()(()))","()()(()()()()())","()()(()()()())()","()()(()()())(())","()()(()()())()()","()()(()())((()))","()()(()())(()())","()()(()())(())()","()()(()())()(())","()()(()())()()()","()()(())(((())))","()()(())((()()))","()()(())((())())","()()(())((()))()","()()(())(()(()))","()()(())(()()())","()()(())(()())()","()()(())(())(())","()()(())(())()()","()()(())()((()))","()()(())()(()())","()()(())()(())()","()()(())()()(())","()()(())()()()()","()()()((((()))))","()()()(((()())))","()()()(((())()))","()()()(((()))())","()()()(((())))()","()()()((()(())))","()()()((()()()))","()()()((()())())","()()()((()()))()","()()()((())(()))","()()()((())()())","()()()((())())()","()()()((()))(())","()()()((()))()()","()()()(()((())))","()()()(()(()()))","()()()(()(())())","()()()(()(()))()","()()()(()()(()))","()()()(()()()())","()()()(()()())()","()()()(()())(())","()()()(()())()()","()()()(())((()))","()()()(())(()())","()()()(())(())()","()()()(())()(())","()()()(())()()()","()()()()(((())))","()()()()((()()))","()()()()((())())","()()()()((()))()","()()()()(()(()))","()()()()(()()())","()()()()(()())()","()()()()(())(())","()()()()(())()()","()()()()()((()))","()()()()()(()())","()()()()()(())()","()()()()()()(())","()()()()()()()()"};
        StringBuilder stringBuilder = new StringBuilder();
        string result;
        void testisValid() {
            var primero = isValid("((((())()())))");
            var primero2 = isValid("((()");
            var primero3 = isValid("((())");
            var primero4 = isValid("((()))))");
            var primero5 = isValid("((()()()())");
            var primer6valid = isValid("(()((())()()))()");

        }

        public List<List<int>> LlenarDerecha(int izquierda, int intermedio)
        {
            List < List<int> > indices= new List<List<int>>();
            int hasta = derechaBASE - intermedio;
            for (int x = 1; x <= hasta; x++)
            {
                var linea = new List<int>();
                linea.Add(izquierda);
                linea.Add(intermedio);
                var intermediolocal = derechaBASE;
                for (int y = 0; y < x; y++)
                {
                   
                    linea.Add(--intermediolocal);
                }
                indices.Add(linea);
            }
           
           return indices;
        }
        public List<structure>  fillit(int izquierda, int intermedio) {
            List<structure> structure = new List<structure>();
            int hasta = intermedio - izquierda;
            int x = intermedio;
            for (; x > izquierda; x--)
            {
              
                if (x < derechaBASE)
                {
                    var derecha = new List<int>();
                    derecha.Add(izquierda);
                    derecha.Add(x);
                    //structure.indices.Add(derecha);
                    structure.Add(new Problems.structure(derecha));
                    int veremos= izquierdaBASE- x;
                    if (veremos >= 2)
                    {
                        derecha = new List<int>(derecha);
                        derecha.Add(x + 1);
                        structure.Add(new Problems.structure(derecha));
                    }
                    //int y = derechaBASE - x-1;
                    //var derechaInner = new List<int>(derecha);
                    //bool iffor = false;
                    ////for (int i=1; i <= y; i++)
                    ////{
                    ////   iffor=true;
                    ////    int nuevonumero = x + i;
                    ////    derecha.Add(nuevonumero);
                    ////    derechaInner.Add(nuevonumero);
                      
                    ////}
                    ////if(iffor)
                   // indices.Add(derecha);


                }
            }
            List<List<int>> last = new List<List<int>>();
            foreach (var item in structure)
            {
               // last.Add(item);
                int i = item.indices.Last()+1;
                int lastitem = item.indices.Last();
                if (lastitem != izquierdaBASE)
                {
                    var inner = new List<int>(item.indices);
                   // bool entro = true;
                    //for (; i <= derechaBASE ; i++)
                    //{
                    //    entro = true;
                    //    inner.Add(i);
                    //}
                    inner.Add(izquierdaBASE);
                    inner.Add(derechaBASE);
                    item.hijos.Add(new Problems.structure(inner));
                    if (item.indices.Count > 2) {
                        inner = new List<int>(item.indices);
                        // bool entro = true;
                        //for (; i <= derechaBASE ; i++)
                        //{
                        //    entro = true;
                        //    inner.Add(i);
                        //}
                       
                        inner.Add(derechaBASE);
                        inner.Add(derechaBASE+1);
                        item.hijos.Add(new Problems.structure(inner));
                    } 

                    //  if (entro)

                    //inner = new List<int>(item.indices);
                    //inner.Add(izquierdaBASE);
                    //inner.Add(derechaBASE+1);
                    //item.hijos.Add(new Problems.structure(inner));
                }
                int vamos = lastitem - izquierdaBASE;
                if (vamos >= 2)
                { 
                                      
                }
            }

            return structure;
        }
      

        bool isValid(string parenthises)
        {
            if (parenthises[0] == ')') return false;
            if (parenthises[parenthises.Length-1] == '(') return false;

            while (string.IsNullOrEmpty(parenthises)==false)
            {
                if (parenthises[parenthises.Length - 1] == '(') return false;
                for (int i = 0; i < parenthises.Length; i++)
                {
                    if (parenthises[i] == ')')
                    {
                        int indexparther = i - 1;
                        if (indexparther == -1) return false;
                        var char1= parenthises[i];
                        var char2 = parenthises[indexparther];
                        if (parenthises[indexparther] == '(')
                        {
                            parenthises =new string( parenthises.Replace("()", ""));
                            if (parenthises.Length == 0)
                            {
                                parenthises = string.Empty;
                                return true;
                            }
                            break;
                        }
                        else
                        { return false; }
                    }
                
                }
            }
            if (parenthises.Length == 0)
                return true;
            else return false;
           
        }
        public void print()
        { 
            string basepoint = "((((((()))))))";
            int n = 13;
            var array = array7;
            for (int i = 0; i <= n; i++)
            {
                stringBuilder.Append("0,");
            }
            for (int i = 0; i <= n; i++)
            {
                stringBuilder.Append(basepoint[i]);
                stringBuilder.Append(",");
            }
            stringBuilder.AppendLine();
            foreach (var item in array)
            {
                for (int i = 0; i <= n; i++)
                {
                    if (basepoint[i] == item[i])
                    {
                        stringBuilder.Append("0,");
                    }
                    else {
                        stringBuilder.Append($"{i},");
                    }
                }
                for (int i = 0; i <= n; i++)
                {
                    stringBuilder.Append(item[i]);
                    stringBuilder.Append(",");
                }
                stringBuilder.Append(item);
                stringBuilder.Append(",");
                stringBuilder.AppendLine();
            }
             result= stringBuilder.ToString();
        }


    }
}
Editor is loading...