Pagini recente » Borderou de evaluare (job #1169439) | Borderou de evaluare (job #835087) | Cod sursa (job #2652475) | Cod sursa (job #2306136) | Cod sursa (job #644361)
Cod sursa(job #644361)
#include<fstream>
using namespace std;
#define INF 0x3f3f3f3f
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
int n, S;
int g[20001];
int c[75001];
int t[75001];
int main()
{
int j;
fin >> n >> S;
for ( int i = 0; i < n; i++ )
fin >> g[i];
for ( int i = 0; i <= S; i++ )
c[i] = INF;
c[0] = 0;
for ( int i = 0; i < n; i++ )
for ( j = S; j >= 0; j-- )
if ( c[j] != INF && c[j+g[i]] > c[j] + 1 )
c[j+g[i]] = c[j] + 1;
for ( j = S; j >= 0; j-- )
if ( c[j] != INF )
{
fout << j << ' ' << c[j] << '\n';
break;
}
int m = j;
for(int i = S; i >= 0; i--)
if(c[i] <c[m]){fout <<m-i <<" ";m = i;}
fin.close();
fout.close();
return 0;
}