Cod sursa(job #644361)

Utilizator andraardnaandra ardna andraardna Data 6 decembrie 2011 10:24:37
Problema Ghiozdan Scor 46
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#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;
}