Pagini recente » Cod sursa (job #1940776) | Cod sursa (job #268031) | Cod sursa (job #1825915) | Cod sursa (job #866221) | Cod sursa (job #1018965)
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#define MAX_N 1000010
int n,s,v[MAX_N],i,j,k1,k2,k3,k4,k5,sum1[MAX_N][3],sum2[MAX_N][3],sum3[MAX_N][3],sum4[MAX_N][3],sum5[MAX_N][3];
void quickSort(int arr[MAX_N][3], long left, long right){
long i = left, j = right;
long tmp;
long pivot = arr[left + rand() % ( right - left + 1 )][0];
while (i <= j)
{
while (arr[i][0] < pivot)
i++;
while (arr[j][0] > pivot)
j--;
if (i <= j)
{
tmp = arr[i][0];
arr[i][0] = arr[j][0];
arr[j][0] = tmp;
tmp = arr[i][1];
arr[i][1] = arr[j][1];
arr[j][1] = tmp;
tmp = arr[i][2];
arr[i][2] = arr[j][2];
arr[j][2] = tmp;
i++;
j--;
}
}
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
using namespace std;
FILE *f,*g;
int main(){
f=fopen("loto.in","r");
g=fopen("loto.out","w");
fscanf(f, "%d %d", &n, &s);
k1=k2=k3=k4=k5=0;
for(i=0;i<n;i++)
{
fscanf(f, "%d", &v[i]);
}
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
sum1[k1][0]=v[i]+v[j];
sum1[k1][1]=v[i];
sum1[k1][2]=v[j];
k1++;
}
}
for(i=0;i<k1;i++)
{
for(j=0;j<n;j++)
{
sum2[k2][0]=sum1[i][0]+v[j];
sum2[k2][1]=v[j];
sum2[k2][2]=i;
k2++;
}
}
for(i=0;i<k2;i++)
{
for(j=0;j<n;j++)
{
sum3[k3][0]=sum2[i][0]+v[j];
sum3[k3][1]=v[j];
sum3[k3][2]=i;
k3++;
}
}
for(i=0;i<k3;i++)
{
for(j=0;j<n;j++)
{
sum4[k4][0]=sum3[i][0]+v[j];
sum4[k4][1]=v[j];
sum4[k4][2]=i;
k4++;
}
}
int sem=0;
for(i=0;i<k4;i++)
{
for(j=0;j<n;j++)
{
sum5[k5][0]=sum4[i][0]+v[j];
sum5[k5][1]=v[j];
sum5[k5][2]=i;
if(sum5[k5][0]==s)
{
sem=1;
fprintf(g,"%d %d %d %d %d %d", sum5[k5][1], sum4[sum5[k5][2]][1], sum3[sum4[sum5[k5][2]][2]][1], sum2[sum3[sum4[sum5[k5][2]][2]][2]][1], sum1[sum2[sum3[sum4[sum5[k5][2]][2]][2]][2]][1], sum1[sum2[sum3[sum4[sum5[k5][2]][2]][2]][2]][2]);
break;
}
k5++;
}
if(sem) break;
}
k5--;
if(!sem)
{
fprintf(g,"-1");
}
return 0;
}