Witam serdecznie wszystkich forumowiczów
Przykładowy test z zadania przechodzę pomyślnie, ale później zaczynają się schody - mam WA. Prosiłbym o jakieś testy, jeśli można, chciałbym poprawić swoje błędy. Z góry dziękuje za pomoc!
Mój kod poniżej:
[bbone=CPP,2531]#include
include
using std::vector;
const int metr_na_cm = 100;
const int za_wysoka_osoba = 10000;
class Osoba {
int wzrost, wiek, rocznyPrzyrostWzrostu;
static int najnizsza;
static int koniecRosniecia;
void wyznaczNajnizsza() {
if(wzrost < najnizsza) najnizsza = wzrost;
}
public:
Osoba(const int & w, const int & wi, const int & p) : wzrost(w), wiek(wi), rocznyPrzyrostWzrostu(p) {
wyznaczNajnizsza();
}
Osoba& operator ++() {
if(wiek < koniecRosniecia) // mozliwy blad
wzrost += rocznyPrzyrostWzrostu;
++wiek;
wyznaczNajnizsza();
}
static int najnizszaOsoba() {
return najnizsza;
}
static void najnizszaOsobaReset() {
najnizsza = za_wysoka_osoba;
}
};
int Osoba::najnizsza = za_wysoka_osoba;
int Osoba::koniecRosniecia = 20;
int drogaJablka(const int & predkosc) { // mozliwy blad
double droga = predkosc / 20.0 * predkosc;
droga *= metr_na_cm;
int wynik = droga;
return wynik;
}
int main() {
int t;
scanf("%d",&t);
while(t--) {
int predkoscZabicia;
scanf("%d",&predkoscZabicia);
int populacja;
scanf("%d",&populacja);
vector<Osoba> osoby;
osoby.reserve(populacja);
int wzrost, wiek, rocznyPrzyrostWzrostu;
while(populacja--) {
scanf("%d %d %d", &wzrost, &wiek, &rocznyPrzyrostWzrostu);
osoby.push_back(Osoba(wzrost,wiek,rocznyPrzyrostWzrostu));
}
// plan na 20 lat
int odleglosc=drogaJablka(predkoscZabicia);
int wysokoscSciecia;
populacja=osoby.size();
for(int i=0;i<=20;++i) {
wysokoscSciecia = odleglosc + Osoba::najnizszaOsoba();
printf("%d: %d\n",i,wysokoscSciecia);
Osoba::najnizszaOsobaReset();
for(int j=0;j<populacja;++j)
++osoby[j];
}
}
}
[/bbone]