Cod sursa(job #1711746)

Utilizator danbuicaDan Buica danbuica Data 1 iunie 2016 08:18:07
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");

#define MAX 1000001
int v[101],v2[MAX],n,s,l;
int cmp(const void *a, const void *b)
{
    int *aa=(int*)a, *bb=(int*)b;
    int k=*aa, l=*bb;
    return (k-l);
}



void afisare(int x)
{
    int i,j,k;
    for (i=0; i<n; i++)
        for (j=0; j<n; j++)
            for (k=0; k<n; k++)
                if (v[i]+v[j]+v[k]==v2[x])
                {
                   cout<<v[i]<<" "<<v[j]<<" "<<v[k];
                    return;
                }
}

int main()
{
    int i,j,k;

   cin>>n>>s;
    for (i=0; i<n; i++)
        cin>>v[i];

    l=0;
    for (i=0; i<n; i++)
        for (j=0; j<n; j++)
            for (k=0; k<n; k++)
            {
                v2[l]=v[i]+v[j]+v[k];
                l++;
            }

    qsort(v2,l,sizeof(int),cmp);

    j=l-1; k=1;
    while(k<=j)
    {

            if (v2[k]+v2[j]==s)
            {
                afisare(i);
                cout<<" ";
                afisare(j);
                cout<<endl;

                return -1;
            }
        if (v2[j]+v2[k]<s)
            k++;
            else
                j--;
    }


    cout<<-1;

    return 0;
}