Po 1 - kod: for (;t > 0; --t) fakt działa, ale wygląda paskudnie. Lepiej pisz for (int i = 0; i < t; ++i)
Po 2 - jak piszesz np licznik{0}, to moim zdaniem wygodniej pisać licznik = 0; Wtedy będzie dla ciebie czytelniej i jak ktoś popatrzy na twój kod to będzie wiedział o co chodzi, bo licznik{0} niewygodnie się czyta.
Po 3 - jak piszesz czas = floor(doba/czas) czy cos innego z funkcją floor, czyli zaokrąglasz w dół do zmiennej czas, która jest typu double, czyli zmiennoprzecinkowa użyj inta
Po 4 - nie pisz czas = floor(doba) / czas tylko daj int czas = doba/czas w c++ domyślnie zaokrągla się w dół.
Po 5 - Niezbyt rozumiem o co chodzi z tym akt imo jak wyliczysz zmienna czas to wystarczy ci mieć zmienna suma czy tam licznik obojętnie i robisz licznik += czas / m i na koniec wypisujesz ceil(licznik/m).
Jak piszesz jakieś zadania w c++ to pisz odrazu na początku maina linijki:
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
Pszyśpieszają wczytywanie i wypisywanie danych. Jeśli w zadaniu masz bardzo dużo danych, to nieraz zaoszczędziłem dzięki nim 0,1s. Co w niektórych zadaniach jest bardzo dużo.