static int perda             = 0; // qnts chegadas cairam
        static void Main(string[] args)
        {
            Console.WriteLine("Digite a quantidade de servidores da fila: ");
            int serv = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Digite a capacidade maxima da fila: ");
            int capa = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Digite o tempo de chegada minimo: ");
            int cheMin = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Digite o tempo de chegada maximo: ");
            int cheMax = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Digite o tempo de atendimento min: ");
            int ateMin = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Digite o tempo de atendimento max: ");
            int ateMax = Convert.ToInt32(Console.ReadLine());

            fila = new Fila(serv, capa, cheMin, cheMax, ateMin, ateMax);

            Console.WriteLine(fila.exibir());

            //setup das demais configs
            Console.WriteLine("Digite o estado inicial de chegada: ");
            double estIni = Convert.ToDouble(Console.ReadLine());

            for (int i = 0; i < 100000; i++)
            {
                numerosAleatorios.Add(ger.receiveRandomIn(0, 1));
            }

            for (int i = 0; i < capa + 1; i++)
            {
                estadoFila.Add(0.0);
            }

            filaSimples(fila, estIni);

            for (int i = 0; i <= fila.getCap(); i++)
            {
                Console.WriteLine("Tempo total que " + i + " ficaram na fila: " + estadoFila.ElementAt(i));
            }

            Console.WriteLine("perdas: " + perda);
            Console.WriteLine("tempo total: " + tempoDecorrido);
        }
        private static void filaSimples(Fila fi, double inicio)
        {
            tempoDecorrido = 0;
            chegada(inicio);
            double menorTempo = 0;
            int    posMenor   = 0;

            // enquanto existirem numeros aleatorios na lista
            while (!numerosAleatorios.Any())
            {
                if (fila.getAtual() == fila.getCap())
                {
                    menorTempo = listaEvento.ElementAt(0).getTempo();
                    posMenor   = 0;
                    for (int i = 0; i < listaEvento.Count; i++)
                    {
                        if (listaEvento.ElementAt(posMenor).getTempo() > listaEvento.ElementAt(i).getTempo())
                        {
                            menorTempo = listaEvento.ElementAt(i).getTempo();
                            posMenor   = i;
                        }
                    }

                    // se evento não for saida
                    if (listaEvento.ElementAt(posMenor).getTipo() == 1)
                    {
                        perda++;
                        listaEvento.RemoveAt(posMenor);
                        chegada(menorTempo);
                    }
                    else
                    {
                        saida(menorTempo);
                        listaEvento.RemoveAt(posMenor);
                    }
                }
                else
                {
                    //caso fila não cheia
                    menorTempo = listaEvento.ElementAt(0).getTempo();
                    posMenor   = 0;
                    for (int i = 0; i < listaEvento.Count; i++)
                    {
                        if (listaEvento.ElementAt(posMenor).getTempo() > listaEvento.ElementAt(i).getTempo())
                        {
                            menorTempo = listaEvento.ElementAt(i).getTempo();
                            posMenor   = i;
                        }
                    }

                    //Chegada
                    if (listaEvento.ElementAt(posMenor).getTipo() == 1)
                    {
                        chegada(menorTempo);
                        listaEvento.RemoveAt(posMenor);
                    }
                    //Saida
                    else if (listaEvento.ElementAt(posMenor).getTipo() == 0)
                    {
                        saida(menorTempo);
                        listaEvento.RemoveAt(posMenor);
                    }
                    menorTempo = 0;
                    posMenor   = 0;
                }
            }
        }