#include #include #include #include #include using std::map; using std::string; double m[200][200]; void resetMatrix( int c ) { for ( int i=0; i cnames; for ( int i=0; i 1 ) arbitrage = true;*/ } int i = c-1; //printMatrix( c ); while ( !arbitrage && i ) { for ( int j=0; (j 0.0 ) { for ( int k=0; (k 0.0 ) && ( m[k][i]*m[i][j] > m[k][j]) ) { m[k][j] = m[k][i]*m[i][j]; if ( ( k==j ) && ( m[k][j] > 1.0 ) ) arbitrage = true; } } } } i--; //printMatrix( c ); } if ( arbitrage ) printf( "Arbitrage\n" ); else printf( "Ok\n" ); scanf( "%d\n", &c ); } return 0; }