Work Schedule Generator

Work Schedule Generator

example

Otrzymują Państwo sekwencję pracowników wraz z ich preferencjami i umiejętnościami. Mają Państwo również potrzeby biznesowe dotyczące wymaganego czasu pracy i zadań. Państwa funkcja powinna zwrócić harmonogram, który spełnia potrzeby biznesowe z dostępnymi pracownikami (jeśli jest to możliwe). Przejdźmy teraz do szczegółów.

staff jest słownikiem , gdzie kluczami są nazwiska pracowników, a wartościami są słowniki . Każda wartość dictionary zawiera trzy pary klucz-wartość:

  • "pref_shifts" - lista ciągów znaków: zmiany, pracownik chce pracować na (może być "first", "second" lub oba w tej kolejności);
  • "days_off" - lista ciągów znaków: dni, w które pracownik chce mieć wolne (pełne nazwy dni tygodnia);
  • "skills" - lista ciągów znaków: prace, które pracownik może wykonywać.

business_needs to tablica lista trzech wartości: dzień tygodnia, na który ma być sporządzony grafik - string; liczba zmian, które mają być w tym dniu - liczba całkowita; zadania, które mają być wykonane w tym dniu - lista ciągów znaków.

Proszę zwrócić uwagę na zmiany. Każdy pracownik może pracować na pierwszej, drugiej lub obu zmianach (przez cały dzień), z wyłączeniem dni wolnych. Liczba zmian dla firmy oznacza liczbę różnych zmian, które mają być obecne w tym dniu. Na przykład, jeśli liczba zmian 3, może być pokryta przez pracownika, który pracuje cały dzień (obie jego zmiany, "pierwsza" i "druga", łącznie - 2) i dowolnego pracownika więcej (ponieważ każdy pracownik ma co najmniej jedną zmianę), lub przez trzy zmiany różnych pracowników. Liczba zmian powinna być podzielona równo pomiędzy "first" i "second" zmiany dzienne. Jeśli liczba zmian jest nieparzysta (i nie jest równa 1), zmiana dzienna "first" musi obejmować o jedną zmianę więcej niż zmiana dzienna "second".

Umiejętności mogą być częściowo/całkowicie takie same dla różnych pracowników. W związku z tym przy obsadzaniu zmian dziennych należy wybierać pracowników z mniejszą liczbą umiejętności - są oni zazwyczaj gorzej opłacani. Jeśli ich liczba jest taka sama - proszę wybierać alfabetycznie według nazwisk. Z punktu widzenia zaangażowania pracowników, pierwsza zmiana dzienna ma pierwszeństwo: ważniejsze jest, aby byli na niej pracownicy z mniejszą liczbą umiejętności. Zadania to minimalna sekwencja do wykonania - sekwencja zagregowanych umiejętności...

You should be an authorized user in order to see the full description and start solving this mission.