#include #include #include #include #include #include using namespace std; struct Vrchol { double val; //vrcholid castka map sousedi; Vrchol():val(-1){} }; Vrchol* vrcholy; bool f(int v,double val) { //cout << "jdu na "<vrcholy[v].val+(1e-10)) return true; // arb return false; } else { //cout << "pokracuju" << endl; vrcholy[v].val = val; for(map::iterator it = vrcholy[v].sousedi.begin() ; it != vrcholy[v].sousedi.end() ; it++ ) { int v2 = it->first; double k = it->second; double nval = val*k; bool r = f(v2,nval); if(r) return true; // arb } vrcholy[v].val = -1; //cout << "zpet z "<> men; if(men==0) break; map subst; for(int i = 0 ; i>mena; subst.insert(make_pair(mena,i)); } vrcholy = new Vrchol[men]; int kurzu; cin >> kurzu; for(int i = 0 ; i>mena1>>mena2>>k1; cin.get(); cin>>k2; int m1 = subst[mena1]; int m2 = subst[mena2]; double kk = ((double)k2)/k1; vrcholy[m1].sousedi.insert(make_pair(m2,kk)); } for(int i=0;i