Cod sursa(job #1780665)

Utilizator nedelcu11Nedelcu Mihai Vlad nedelcu11 Data 16 octombrie 2016 14:47:51
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("loto.in"); ofstream g("loto.out");
int n, s, nr, a[112];
struct art {int s, x, y, z;} v[1000005];
bool cmp(art x, art y)
{   return x.s<y.s;}
int main ()
{   f>>n>>s;
    for(int i=0; i<n; ++i) f>>a[i];
    for (int i=0; i<n;i++)
        for (int j=i;j<n;j++)
            for (int k=j;k<n;k++)
            {   v[++nr].s=a[i]+a[j]+a[k];
                v[nr].x=a[i]; v[nr].y=a[j]; v[nr].z=a[k];
            }
    sort(v+1, v+nr+1, cmp);
    int st,dr,m,suma;
    for(int i=1; i<=nr; ++i)
    {   st=1; dr=nr; suma=s-v[i].s;
        while (st<=dr)
        {   m=(st+dr)>>1;
            if (v[m].s  ==  suma)
                {	g<<v[i].x<<' '<<v[i].y<<' '<<v[i].z<<' ';
g<<v[m].x<<' '<<v[m].y<<' '<<v[m].z<<'\n'; return 0;
    }
            else if(v[m].s<suma) st=m+1; else dr=m-1;
        }
    }
    g<<"-1\n"; return 0;
}