fork download
  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3. const int N = 30 ;
  4. int n , b ;
  5. int a[N] , c[N] ;
  6. int choose[N] ;
  7. int ans[N] ;
  8. int res = 0 ;
  9. void dq( int id , int cura , int curc ){
  10. if ( id == n ){
  11. if ( cura <= b && curc >= res ){
  12. res = curc ;
  13. for ( int i = 0 ; i < n ;i++ )
  14. ans[i] = choose[i] ;
  15. }
  16. return ;
  17. }
  18. for ( int i = 0 ; i <= 1 ; i++ ){
  19. choose[id] = i ;
  20. dq( id + 1 , cura + i*a[id] , curc + i*c[id] ) ;
  21. }
  22. }
  23. int main(){
  24. cin >> n >> b ;
  25. for ( int i = 0 ; i < n ; i++ )
  26. cin >> a[i] >> c[i] ;
  27. dq( 0 , 0 , 0 ) ;
  28. cout << res << endl ;
  29. for ( int i = 0 ; i < n ;i ++ )
  30. cout << ans[i] << " " ;
  31. }
  32.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
0