#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int c, r; char buffer[40]; map kody; int euklid(int a,int b){ if (b == 0) return a; else return euklid(b, a % b); } struct Zlomek{ int cit; int jmen; bool operator<(const Zlomek& z)const{ return cit * z.jmen < z.cit*jmen; } bool operator>(const Zlomek& z)const{ return cit * z.jmen > z.cit*jmen; } Zlomek operator *(const Zlomek& z)const{ int d = euklid(cit*z.cit,jmen*z.jmen); return Zlomek (cit*z.cit/d,jmen*z.jmen/d); } Zlomek(int c,int j):cit(c),jmen(j){} Zlomek(){} }; double graf[400]; struct Hrana{ int z, d; double pomer; }; Hrana hrany[40400]; int main() { while(1) { scanf("%d", &c); if (!c) break; for (int i=0; i<=c; i++) graf[i] = -100000000; kody.clear(); for (int i=0; i(string(buffer), i)); } scanf("%d", &r); char k1[4], k2[4]; int i1, i2, p1, p2; for (int i=0; igraf[d]+0.00001){ graf[d] = graf[z]+hrany[j].pomer; //printf("%d to %d w %d/%d\n",z,d,graf[d].cit,graf[d].jmen ); changed = true; } } if(i == c+1 && changed){ arbitrage = true; } } printf(arbitrage?"Arbitrage\n":"Ok\n"); } return 0; }