Untitled
unknown
csharp
a year ago
1.6 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;
var endTime = DateTime.Now.AddMinutes(60);
while (true)
{
if (numerKroku == maxNumberKroku)
{
numerKroku = 0;
if (pokojeDzieci.OrderBy(x=>x).SequenceEqual(pokojePetli.OrderBy(x=>x)))
{
return "NIE";
}else if (DateTime.Now >= endTime)
{
return "TIMEOUT";
}
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