#include #include #include #define MAX 300 char meny[MAX][4]; int N; double m[MAX][MAX]; int index(char mena[]) { for (int i = 0; i < N; i++) { if (strcmp(mena, meny[i]) == 0) return i; } printf("Mena %s nenalezena!\n", mena); return -1; } int main() { while (1) { scanf("%d\n", &N); if (N == 0) return 0; for (int i = 0; i < N; i++) { char c[4]; scanf("%c%c%c ", &c[0],&c[1],&c[2]); for (int j = 0; j < 3; j++) meny[i][j] = c[j]; meny[i][3] = '\0'; } for (int i = 0; i < N; i++) for(int j = 0; j < N; j++) m[i][j] = 100000; for (int i = 0; i < N; i++) m[i][i] = 0; int M; scanf("%d\n", &M); for (int i = 0; i < M; i++) { int a,b; char c[4]; scanf("%c%c%c ", &c[0],&c[1],&c[2]); c[3] = '\0'; a = index(c); scanf("%c%c%c ", &c[0],&c[1],&c[2]); c[3] = '\0'; b = index(c); int z,d; scanf("%d:%d\n", &z,&d); double podil = (double) d / (double) z; podil = log(podil); m[a][b] = podil * -1; } for (int k = 0; k < N; k++) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (m[i][k] + m[k][j] < m[i][j]) m[i][j] = m[i][k] + m[k][j]; } } } int arb = 0; for (int i = 0; i < N; i++) if (m[i][i] < 0) arb = 1; if (arb == 1) printf("Arbitrage\n"); else printf("Ok\n"); } }