Pagini recente » Cod sursa (job #751498) | Cod sursa (job #809843) | Cod sursa (job #2060074) | Cod sursa (job #267953) | Cod sursa (job #854045)
Cod sursa(job #854045)
#include <vector>
#include <fstream>
#define mod 666013
#include <algorithm>
using namespace std;
ifstream f ("loto.in");
ofstream g("loto.out");
int v[101];
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()
{
long sum;
int n, i, j, k, s, t, u;
f>>n>>sum;
for(i=0;i<n;i++)
f>>v[i];
sort(v+1, v+n+1);
if( (v[0] * 6)>sum && (v[n-1] * 6)<sum)
{
g<<-1;
return 0;
}
for(i=0; i<n && (v[i] * 6) <= sum; i++)
for(j=i; j<n && ((v[i] + v[j] * 5) <= sum) && ((v[i] + v[n-1] * 5) >= sum); j++)
for(k=j; k<n && ((v[i] + v[j] + v[k] * 4) <= sum) && ((v[i] + v[j] + v[n-1] * 4) >= sum); k++)
for(t=k; t<n && ((v[i] + v[j] + v[k] + v[t] * 3) <= sum) && ((v[i] + v[j] + v[k] + v[n-1] * 3) >= sum); t++)
for(s=t; s<n && ((v[i] + v[j] + v[k] + v[t] + v[s] * 2) <= sum) && ((v[i] + v[j] + v[k] + v[t] + v[n-1] * 2) >= sum); s++)
for(u=s; u<n && ((v[i] + v[j] + v[k] + v[t] + v[s] + v[n-1]) >= sum); u++)
if((v[i] + v[j] + v[k] + v[t] + v[s] + v[u])==sum)
{
g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<v[t]<<" "<<v[s]<<" "<<v[u];
return 0;
}
g<<-1;
return 0;
}