Pagini recente » Cod sursa (job #122683) | Cod sursa (job #25960) | Cod sursa (job #1541492) | Cod sursa (job #1931724) | Cod sursa (job #18374)
Cod sursa(job #18374)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define maxN 100
#define maxG 100
int n,g,vec[maxN],din[maxG],his[maxG],gmax,nmin;
void inputFunc(){
FILE*fi=fopen("ghiozdan.in","r");
fscanf(fi,"%d %d",&n,&g);
for(int i=0;i<n;i++){
fscanf(fi,"%d",vec+i);
}
fclose(fi);
}
void outputFunc(){
FILE*fi=fopen("ghiozdan.out","w");
fprintf(fi,"%d %d",gmax,nmin);
fclose(fi);
}
bool gr(int a,int b){return a>b;}
int main(){
inputFunc();
sort(vec,vec+n,gr);
for(int i=0;i<n;i++){
int c=vec[i];
for(int j=g-c;j>0;j--)if(din[j]){
if(din[j]+1 < din[j+c] || !din[j+c])din[j+c]=din[j]+1,his[j+c]=c;
}
din[c]=1;his[c]=-1;
}
for(int i=g;i>=0;i--)if(din[i]){gmax=i;break;}; nmin=din[gmax];
outputFunc();
return 0;
}