Pagini recente » Cod sursa (job #391127) | Cod sursa (job #2785537) | Cod sursa (job #2929246) | Cod sursa (job #2616756) | Cod sursa (job #811642)
Cod sursa(job #811642)
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int a[100];
bool myfunction (int i,int j) { return (i>j); }
void quick_sort(int v[],int left,int right)
{
int i=left,j=right,p=v[(left+right)/2],aux;
while(i<=j)
{
while(v[i]>p)i++;
while(v[j]<p)j--;
if(i<=j){aux=v[i];v[i]=v[j];v[j]=aux;i++;j--;}
}
if(left<j)quick_sort(v,left,j);
if(i<right)quick_sort(v,i,right);
}
int main()
{
FILE *input = fopen("loto.in","r");
FILE *output = fopen("loto.out","w");
long s;
int n;
fscanf(input,"%d%ld",&n,&s);
for (int i=0;i<n;i++)
{
fscanf(input,"%ld",&a[i]);
}
quick_sort(a,0,n-1);
int stop = 1;
int i,x,y,z,k,m = 0;
for (i=0;i<n&&stop&&a[i]*6>=s;i++)
for (x=i;x<n&&stop&&a[i]+a[x]*5>=s&&a[i]+a[n-1]*5<=s;x++)
for (y=x;y<n&&stop&&a[i]+a[x]+a[y]*4>=s&&a[i]+a[x]+a[n-1]*4<=s;y++)
for (z=y;z<n&&stop&&a[i]+a[x]+a[y]+a[z]*3>=s&&a[i]+a[x]+a[y]+a[n-1]*3<=s;z++)
for (k=z;k<n&&stop&&a[i]+a[x]+a[y]+a[z]+a[k]*2>=s&&a[i]+a[x]+a[y]+a[z]+a[n-1]*2<=s;k++)
for (m=k;m<n&&stop&&a[i]+a[x]+a[y]+a[z]+a[k]+a[m]>=s;m++)
if (a[i]+a[x]+a[y]+a[z]+a[k]+a[m] == s)
{
fprintf(output,"%ld %ld %ld %ld %ld %ld",a[i],a[x],a[y],a[z],a[k],a[m]);
stop = 0;
}
if (stop) fprintf(output,"-1");
fclose(input);
fclose(output);
return 0;
}