Cześć!
Robię takie zadanie http://www.usaco.org/index.php?page=viewproblem2&cpid=597 i dla tego testu według twórców poprawną odpowiedzią jest 24197.0, ale dla np wartości R = 20247, przyjmując że wybuch następuje w miejscu pojawienia się pierwszej bomby (co jest oczywiście nieoptymalne), moja funkcja sprawdzająca czy wybuchną wszystkie bomby zwraca true. Czy moja funkcja jest błędna? Czy ja czegoś nie rozumiem?
Tutaj można pobrać oryginalnie wszystkie testy do zadania "Angry Cows", omawiany przeze mnie to test nr 2
funkcja sprawdzająca czy wszystkie bomby wybuchły dla określonego R które wybucha w punkcie 1 od lewej bomby
bool check(vector<int>& a, int R){
int i = 1, beg = 0;
for (; i < (int)a.size() && R > 0; R--){
while (a[beg] + R >= a[i] && i < (int)a.size()){
i++;
}
beg = i;
}
return i == (int)a.size();
}