Pagini recente » Cod sursa (job #1243622) | Cod sursa (job #2052720) | Cod sursa (job #907594) | Cod sursa (job #1728658) | Cod sursa (job #335063)
Cod sursa(job #335063)
#include<stdio.h>
#define NMAX 100
int n,s,sp,i,j,pmin,posibil=1,loto[NMAX],answer[6];
int main() {
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d %d",&n,&s);
for(i=0;i<n;i++) scanf("%d",loto+i);
for(i=0;i<n-1;i++) {
pmin=i;
for(j=i+1;j<n;j++)
if(loto[j]<loto[pmin]) pmin=j;
j=loto[i];
loto[i]=loto[pmin];
loto[pmin]=j;
}
if(s>6*loto[n-1]) posibil=0;
else {
i=0;
sp=loto[0];
answer[0]=0;
while((i<5)||(sp!=s)) {
if((answer[i]==n-1)||(s-sp<(5-i)*loto[answer[i]]))
if(i) {
sp-=loto[answer[i--]];
if(answer[i]<n-1) {
sp+=loto[answer[i]+1]-loto[answer[i]];
answer[i]++;
}
}
else {
posibil=0;
break;
}
else {
if(i<5) {
answer[i+1]=answer[i];
i++;
sp+=loto[answer[i]];
}
else {
sp+=loto[answer[i]+1]-loto[answer[i]];
answer[i]++;
}
}
}
}
if(posibil)
for(i=0;i<6;i++) printf("%d ",loto[answer[i]]);
else printf("-1");
return 0;
}