#include<math> #include<set> #include<list> #include<cmath> #include<ctime> #include<deque> #include<stack> #include<bitset> #include<cstdio> #include<vector> #include<cstdlib> #include<cstring> #include<iomanip> #include<numeric> #include<sstream> #include<utility> #include<iostream> #include<algorithm> #include<functional> using namespace std ; long long sum , ans , dp[ 30 ][ 155 ] ; int n , m ; long long Gcd( long long a , long long b ) { return b == 0 ? a : Gcd( b , a % b ) ; } int main() { while( scanf( "%d%d" , &n , &m ) != EOF ) { if( !n && !m ) break ; if( n * 6 < m ) { printf( "0\n" ) ; } else if( n >= m ) { printf( "1\n" ) ; } else { sum = pow( 6 , n ) ; memset( dp , 0 , sizeof( dp ) ) ; for( int i = 0 ; i <= 6 ; ++i ) dp[ 0 ][ i ] = 1 ; for( int i = 0 ; i < n - 1 ; ++i ) { for( int j = 1 ; j <= ( i + 1 ) * 6 ; ++j ) { for( int k = 1 ; k <= 6 ; ++k ) { dp[ i + 1 ][ j + k ] += dp[ i ][ j ] ; } // cout << dp[ i ][ j ] << endl ; } } ans = 0 ; for( int i = m ; i <= n * 6 ; ++i ) { ans = ans + dp[ n - 1 ][ i ] ; // cout << ans << endl ; } // cout << ans << endl ; long long gcd = Gcd( ans , sum ) ; // cout << ans << " " << sum << endl ; // cout << gcd << endl ; printf( "%lld/%lld\n" , ans / gcd , sum / gcd ) ; } } return 0; } /* F:\temp\16139719.54736\Main.cc:2:15: error: math: No such file or directory */ |
Double click to view unformatted code.