Pku 1837 Balance

Pku 1837 Balance
#include  < stdio.h >
#include 
< stdlib.h >
#include 
< string .h >

int   mid =   5000 ;
int   result[ 21 ][ 10000 ];
int   C,G;
int   pos[ 21 ];
int   value[ 21 ];

int  main()
{
    
while ( scanf( " %d%d " , & C, & G) !=  EOF )
    
{
        
for  (  int  i =   1 ; i <=  C;  ++ i )  scanf( " %d " & pos[i] );
        
for  (  int  i =   1 ; i <=  G;  ++ i )  scanf( " %d " & value[i] );
        
        memset( result, 
0 sizeof (result ) );
        
        
for  (  int  i =   1 ; i <=  C;  ++ i )
        result[
1 ][ mid +  pos[i] *  value[ 1 ] ] ++ ;
        
        
for  (  int  i =   2 ; i <=  G;  ++ i )
            
for  (  int  j =   1 ; j <=  C;  ++ j )
                
for  (  int  k =   0 ; k <   10000 ++ k )
                   
if  ( result[i - 1 ][k] >   0  )
                   result[i][ k
+  value[i] *  pos[j] ] +=  result[ i - 1  ][k];
        
        printf(
" %d\n " , result[G][mid] );
    }
    
    
    
return   0 ;
}
    

你可能感兴趣的:(Pku 1837 Balance)