0MS:
View Code
1 #include2 #include 3 using namespace std ; 4 int a[31] ; 5 int n, m, ans ; 6 void dfs(int i, int v) 7 { 8 if(ans==m) 9 return ;10 if(v>m)11 return ;12 if(i<1)13 {14 ans = max(ans, v) ;15 return ;16 }17 int j, sum = v ;18 for(j=i; j>=1; j--)19 sum += a[j] ;20 if(sum
840MS:
View Code
1 #include2 #include 3 using namespace std ; 4 int w[31]; 5 int m,n; 6 int ans; 7 void dfs( int k, int sum ) 8 { 9 if( ans == m )10 return ;11 if( ans < sum )12 ans = sum;13 for( int i=k; i <=m; i++ )14 {15 dfs( i+1, sum+w[i] );16 }17 }18 int main()19 {20 while( scanf( "%d%d", &n,&m ) != EOF )21 {22 ans = 0;23 for( int i=0; i