Pagini recente » Cod sursa (job #57396) | Cod sursa (job #3273247) | Cod sursa (job #722210) | Cod sursa (job #476436) | Cod sursa (job #2245509)
#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();
}