Pagini recente » Cod sursa (job #840195) | Cod sursa (job #741859) | Cod sursa (job #3238198) | Cod sursa (job #62362) | Cod sursa (job #255435)
Cod sursa(job #255435)
#include <stdio.h>
#define MAX 101
#define INFILE "loto.in"
#define OUTFILE "loto.out"
int n, poz2;
long S;
long nr[MAX], final[MAX];
void citire();
void rez();
void ordoneaza();
int main() {
freopen(OUTFILE, "w", stdout);
citire();
rez();
for(int i=poz2-1; i>=1; i--)
printf("%ld ", final[i]);
printf("\n");
fclose(stdout);
return 0;
}
void citire() {
freopen(INFILE, "r", stdin);
scanf("%d %ld", &n, &S);
for(int i=1; i<=n; i++) {
scanf("%d", &nr[i]);
}
fclose(stdin);
}
void ordoneaza() {
int ok, i, aux;
do {
ok = 1;
for(i=1; i<n; i++)
if(nr[i]<nr[i+1]) {
aux = nr[i];
nr[i] = nr[i+1];
nr[i+1] = aux;
ok = 0;
}
}while(!ok);
}
void rez() {
int poz, c, i;
poz = poz2 = 1;
ordoneaza();
while(S) {
c = (float)S/(float)nr[poz] - 1;
if(nr[poz] != 1)
for(i=1; i<=c; i++) {
final[poz2++] = nr[poz];
S -= nr[poz];
}
else
while(S) {
final[poz2++] = nr[poz];
S -= nr[poz];
}
poz++;
}
}