Pagini recente » Cod sursa (job #2185876) | Cod sursa (job #2487955) | Cod sursa (job #1882275) | Cod sursa (job #2055223) | Cod sursa (job #2404467)
#include <bits/stdc++.h>
using namespace std ;
const int NR = 75005 ;
ifstream in ("ghiozdan.in") ;
ofstream out ("ghiozdan.out") ;
int n , g , fr [ 205 ] , sol [ NR ] , v [ NR ] ;
int main () {
int i , j , k , x ;
in >> n >> g ;
while ( n -- ) {
in >> x ;
fr [ x ] ++ ;
}
v [ 0 ] = 0 ;
for ( i = 200 ; i ; i -- ) {
if ( !fr [ i ] ) continue ;
for ( j = g ; j >= 0 ; j -- ) {
if ( !v [ j ] && j ) continue ;
for ( k = 1 ; k * i + j <= g && k <= fr [ i ] && !v [ j + k * i ] ; k ++ ) {
v [ j + k * i ] = k + v [ j ] ;
sol [ j + k*i ] = i ;
}
}
}
for ( i = g ; !v [ i ] ; i -- ) ;
out << i << ' ' << v [ i ] << '\n' ;
while ( sol [ i ] ) {
out << sol [ i ] << '\n' ;
i -= sol [ i ] ;
}
}