Fala galera! Blz?
Bom, esse é meu primeiro tópico aqui no GUJ, então me desculpem caso eu tenha feito algo errado.
Enfim, estou tentando resolver esse problema do URI em C#. Eu meio que já resolvi o problema, só que meu código não está desempenhando bem o suficiente para ser aprovado pelo URI, então gostaria de otimizar ele. Já fiz algumas pesquisas e já modifiquei meu código de acordo com o conteúdo que encontrei, mas até agora sem sucesso : (
Esse é o meu código atual:
using System;
using System.Text;
namespace uri_1025
{
class Program
{
static void Main(string[] args)
{
Int16 numberOfMarbles = 1, NumberOfConsultations = 1, j = 1, marble = 0, a = 0;
string[] numberOfMarblesAndNumberOfConsultations = new string[] { };
while (NumberOfConsultations != 0 && numberOfMarbles != 0)
{
numberOfMarblesAndNumberOfConsultations = Console.ReadLine().Split(' ');
numberOfMarbles = Int16.Parse(numberOfMarblesAndNumberOfConsultations[0]);
NumberOfConsultations = Int16.Parse(numberOfMarblesAndNumberOfConsultations[1]);
Int16[] marbles = new Int16[numberOfMarbles];
if (numberOfMarbles != 0 && NumberOfConsultations != 0)
{
for (Int16 i = 0; i < numberOfMarbles; i++)
{
marble = Int16.Parse(Console.ReadLine());
marbles[i] = marble;
}
a = 0;
Int16[] query = new Int16[NumberOfConsultations];
for (int i = 0; i < NumberOfConsultations; i++)
{
query[i] = Int16.Parse(Console.ReadLine());
}
Console.WriteLine("CASE# " + j + ":");
while (a < NumberOfConsultations)
{
FoundAt_or_NotFound(query[a], marbles);
a++;
}
j++;
}
}
}
private static void FoundAt_or_NotFound(Int16 marble, Int16[] marbles)
{
Array.Sort(marbles);
StringBuilder msg = new StringBuilder();
var result = Array.FindIndex(marbles, x => x == marble);
if (result < 0)
{
msg.Append(marble);
msg.Append(" not found");
Console.WriteLine(msg);
}
else
{
msg.Append(marble);
msg.Append(" found at ");
msg.Append(result + 1);
Console.WriteLine(msg);
}
}
}
}