Pagini recente » Cod sursa (job #3189455) | Cod sursa (job #663034) | Cod sursa (job #1775819) | Cod sursa (job #3222319) | Cod sursa (job #18115)
Cod sursa(job #18115)
#include<stdio.h>
long n , G , S , i , j , k;
long a[100001];
long sir[100001];
void poz(long li,long ls , long&k, long a[100001])
{
int i = li, j=ls,c,i1=0,j1=-1,aux;
while(i<j)
{
if (a[i]>a[j])
{
a[j] = a[i];
a[i]=c;
c = i1;
i1 =-j1;
j1=-c;}
i=i+i1;
j=j+j1;
}
k = i;
}
void quick(long li,long ls)
{
if (li<ls)
{
poz(li,ls,k,a);
quick(li,k-1);
quick(k+1,ls);
}
}
int main()
{
freopen("ghiozdan.in","r",stdin);
freopen("ghiozdan.out","w",stdout);
scanf("%ld%ld",&n,&G);
for (i = 1 ; i <=n ; i++)
scanf("%ld",&a[i]);
quick(1,n);
long nr = 0;
for (i = n ; i >= 1 ; i--)
{
if (S+a[i]<=G)
{
S+= a[i];
nr++;
sir[nr] = a[i];
}
}
printf("%ld %ld\n",S,nr);
for (i = nr ; i >= 1 ; i--)
printf("%ld\n",sir[i]);
return 0;
}