Cod sursa(job #2245509)

Utilizator alex2209alexPavel Alexandru alex2209alex Data 25 septembrie 2018 13:11:38
Problema Ghiozdan Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#include <algorithm>
using namespace std;

int n,G,v[20001],i,j,ma,rasp[100001],rasp2[100001];
int main(int argc, char *argv[]) {
	ifstream f("ghiozdan.in");
	ofstream g("ghiozdan.out");
	f>>n>>G;
	for(i=1; i<=n; i++) {
		f>>v[i];
	}
	sort(v+1,v+n+1);
	for(i=1;i<=n;i++) {
		for(j=G-v[i];j>=0;j--) {
			if(rasp[j]!=0 or j==0) {
				rasp[j+v[i]]=rasp[j]+v[i];
				if(rasp2[j+v[i]]>rasp2[j]+1 or rasp2[j+v[i]]==0)
				{
					rasp2[j+v[i]]=rasp2[j]+1;
				}
				ma=max(ma,rasp[j+v[i]]);
			}
		}
	}
	g<<ma<<" "<<rasp2[ma]<<'\n';
	//while(ma) {
	//	g<<ma-precedent[ma]<<'\n';
	//	ma=precedent[ma];
	//}
	//f.close();
	//g.close();
}