#include #include #include #include #include using namespace std; int t, l, x, y, n; string ts; map > teed; vector teekond; int teekonna_aeg, parim_punktisumma; int teekond_leia_aeg(){ int aeg=0; for(int i=1; i erinevadkohad(teekond.begin(), teekond.end()); int summa=0; for(string kohanimi: erinevadkohad){ summa+=koha_punktid(kohanimi); } return summa; } int koha_punktid(string nimetus){ if(nimetus=="S"){return 0;} if(nimetus=="F"){return 0;} if(nimetus=="H"){return 0;} return atoi(nimetus.c_str())/100; } void kuva_teekond(){ for(int i=0; i >::iterator it= teed.find(uuritav); if(it!=teed.end() && teekonna_aeg::iterator it2=teed[uuritav].begin(); it2!=teed[uuritav].end(); it2++){ teekond.push_back(it2->first); teekonna_aeg+=it2->second; if(it2->first=="F"){ if(teekond_leia_punktid()>parim_punktisumma){ kuva_teekond(); parim_punktisumma=teekond_leia_punktid(); } } //Kuva vaid teekonnad, mis lõppevad finišiga //Pea meeles parim punktisumma //Kui leitud finišiga lõppeva teekonna //punktisumma ületab seni leitud parimat, //siis kuva uus teekond ja punktisumma leia(); teekonna_aeg-=it2->second; teekond.pop_back(); } } } int main(void){ cin >> ts >> l >> x >> y >> n; t=sek(ts); cout << "kontrollaeg " << t << endl; string kust, kuhu; for(int i=0; i> kust >> kuhu >> ts; teed[kust][kuhu]=sek(ts); } teekond.push_back("S"); teekonna_aeg=0; parim_punktisumma=0; leia(); } //g++ -std=c++11 rogain4.cpp