Untitled
unknown
csharp
9 months ago
1.4 kB
6
Indexable
string ObliczKorki(InputRecord input)
{
var pokoje = input.konfiguracjaPokoi;
var kroki = input.zaplanowaneKroki;
var pokojeDocelowe = input.pokojeDocelowe;
var maxNumberKroku = kroki.Length;
var liczbaDzieci = input.liczbaDzieci;
var pokojeDzieci = input.pokojeStartoweDzieci;
int[] pokojePetli = new int[pokojeDzieci.Length];
pokojeDzieci.CopyTo(pokojePetli, 0);
var numerKroku = 0;
var calkowitaIloscKrokow = 1;
var iloscSukcesow = 0;
while (true)
{
if (numerKroku == maxNumberKroku)
{
numerKroku = 0;
if (pokojeDzieci.OrderBy(x=>x).SequenceEqual(pokojePetli.OrderBy(x=>x)))
{
return "NIE";
}
else
{
pokojeDzieci.CopyTo(pokojePetli,0);
}
}
for (int dziecko = 0; dziecko < input.liczbaDzieci; dziecko++)
{
var pokojZajmowanyPrzezDziecko = pokojeDzieci[dziecko];
pokojeDzieci[dziecko] = pokoje[pokojZajmowanyPrzezDziecko, kroki[numerKroku]];
iloscSukcesow += pokojeDocelowe.Contains(pokojeDzieci[dziecko]) ? 1 : 0;
}
if (iloscSukcesow == liczbaDzieci)
break;
calkowitaIloscKrokow++;
numerKroku++;
iloscSukcesow = 0;
}
return calkowitaIloscKrokow.ToString();
}
Editor is loading...
Leave a Comment