#include #include #include using namespace std; int main() { // Připravíme si data long int N, S; scanf("%ld %ld", &N, &S); // V bude udržovat seznam rychlostí závodníků, // kteří ještě nejsou změřeni vector V (N, 0); for (int& v : V) { scanf("%d", &v); } long kol = 0; // Dokud máme závodníky while (V.size()) { // Poslední závodník který doběhl s platným časem // Inicializovat můžeme na prvního, ten určitě doběhne size_t posl_v = V[0], posl_i = 0; // Nastavením rychlosti na nulu poznáme ty, co doběhli V[0] = 0; for (size_t i = 1; i < V.size(); ++i) { // Zjistíme, jestli nedoběhl někoho před sebou long long t1 = S * 60 * V[i]; long long t2 = S * 60 * posl_v + (i - posl_i) * posl_v * V[i]; // Pokud ne, započítáme ho if (t1 < t2) { posl_i = i; posl_v = V[i]; V[i] = 0; } } kol++; // Odstraníme ty s nulovou rychlostí auto it = std::remove_if(V.begin(), V.end(), [] (const long& v) { return !v; }); V.erase(it, V.end()); } printf("%ld\n", kol); return 0; }