Pagini recente » Cod sursa (job #769592) | Cod sursa (job #2921121) | Cod sursa (job #2930957) | Cod sursa (job #224335) | Cod sursa (job #372030)
Cod sursa(job #372030)
#include<iostream>
#include<fstream>
using namespace std;
int v[100],n,c;
void read()
{
FILE *fin;
fin=fopen("greedy.in","r");
fscanf(fin,"%d %d", &n, &c);
for(int i=1;i<=n;i++)
fscanf(fin,"%d", &v[i]);
fclose (fin);
}
void sort(int st, int dr)
{
if(st<dr)
{
int i=st,j=dr, d=0, aux;
d=(st+dr)/2;
aux=v[st];
v[st]=v[d];
v[d]=aux;
d=0;
while(i<j)
{
if(v[i]>v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
d=1-d;
}
i+=d;
j-=1-d;
}
sort(st, i-1);
sort(i+1,dr);
}
}
void write()
{
FILE *fout;
fout=fopen("greedy.out","w");
int s=0,i;
for(i=1;i<=n,s+v[i]<=c;i++)
{
//fprintf(fout,"%d ",v[i]);
s+=v[i];
}
fprintf(fout,"%d \n", i-1);
for(i--;i;i--)
{
fprintf(fout,"%d ",v[i]);
}
}
int main()
{
read();
sort(1,n);
write();
return 0;
}