Cześć, czy mógłby mi ktoś wytłumaczyć dlaczego różne zadania robione różnymi algorytmami w C# mają taki sam zużyty RAM i jak można coś z tym zrobić?
Dla porownania:
Da się zejść do takiego poziomu Csharpem?
c# ram usage in competitive
niestety niezbyt wiele zwraca :(
Przykładowe zadanie i rozwiązanie:
ROWNANIE - Równanie kwadratowe
Napisz program, który wyznacza liczbę pierwiastków rzeczywistych równania kwadratowego.
Wejście
Na wejście programu podana zostanie pewna nieokreślona, ale niewielka ilość zestawów danych. Każdy zestaw składać się będzie z 3 liczb rzeczywistych (współczynników A, B i C równania Ax^2 + Bx + C = 0) rozdzielonych spacjami. Poszczególne zestawy zostaną rozdzielone znakiem nowej linii. Można przyjąć, że A jest różne od zera.
Wyjście
Na wyjściu ma się pojawić ciąg liczbowy, którego i-ta pozycja jest równa liczbie pierwiastków rzeczywistych i-tego wczytanego z wejścia równania. Poszczególne liczby należy rozdzielić znakami nowej linii.
Przykład
Wejście:
0.3 0.3 0.4
0.5 1 0.5
-0.5 -0.5 0
Wyjście:
0
1
2
static int amountOfSolutions(double[] arr)
{
double delta = arr[1]*arr[1] - 4*arr[0]*arr[2];
return (delta>0) ? 2 : (delta==0 ? 1 : 0 );
}
public static void Main()
{
StringBuilder input = new StringBuilder();
while (true)
{
input.Clear();
input.Append(Console.ReadLine());
if (!string.IsNullOrEmpty(input.ToString()))
{
double[] arr = input.ToString().Split(' ').Select( x => Convert.ToDouble(x, CultureInfo.InvariantCulture))
.ToArray();
Console.WriteLine(amountOfSolutions(arr));
}
else
{
break;
}
}
}