def max_task_hours(n, k, t, duties): # Inicjalizacja zmiennych max_hours = -1 for i in range(n): # Sprawdzamy, czy Bajtazar może opuścić spotkanie if duties[i] == '1' and (i + t < n): # Spotkanie w biurze # Sprawdzamy, czy Bajtazar może wrócić do domu if i + t + t < n: # Liczymy bajtogodziny spędzone na zadaniach hours = duties[:i].count('3') + duties[i + t + t:].count('3') if hours > max_hours: max_hours = hours elif duties[i] == '2': # Zdalne spotkanie hours = duties[:i].count('3') + duties[i + 1:].count('3') if hours > max_hours: max_hours = hours # Sprawdzamy, czy Bajtazar nie opuścił więcej niż k spotkań if max_hours == -1 or duties.count('1') - (n - max_hours) > k: return -1 return max_hours # Przykład użycia if __name__ == "__main__": # Wczytanie danych wejściowych n, k, t = map(int, input().split()) duties = input().strip() # Wywołanie funkcji i wyświetlenie wyniku result = max_task_hours(n, k, t, duties) print(result)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | def max_task_hours(n, k, t, duties): # Inicjalizacja zmiennych max_hours = -1 for i in range(n): # Sprawdzamy, czy Bajtazar może opuścić spotkanie if duties[i] == '1' and (i + t < n): # Spotkanie w biurze # Sprawdzamy, czy Bajtazar może wrócić do domu if i + t + t < n: # Liczymy bajtogodziny spędzone na zadaniach hours = duties[:i].count('3') + duties[i + t + t:].count('3') if hours > max_hours: max_hours = hours elif duties[i] == '2': # Zdalne spotkanie hours = duties[:i].count('3') + duties[i + 1:].count('3') if hours > max_hours: max_hours = hours # Sprawdzamy, czy Bajtazar nie opuścił więcej niż k spotkań if max_hours == -1 or duties.count('1') - (n - max_hours) > k: return -1 return max_hours # Przykład użycia if __name__ == "__main__": # Wczytanie danych wejściowych n, k, t = map(int, input().split()) duties = input().strip() # Wywołanie funkcji i wyświetlenie wyniku result = max_task_hours(n, k, t, duties) print(result) |