Cod sursa(job #1282544)

Utilizator Darius15Darius Pop Darius15 Data 4 decembrie 2014 14:16:35
Problema Loto Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int a[105],s,i,j,z,v[1000001],n,l,y,st,dr,m,best,indi,indj,indz;
int main()
{
    f>>n>>s;
    for (i=1;i<=n;i++)
        f>>a[i];
    l=0;
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
         for(z=1;z<=n;z++)
          v[++l]=a[i]+a[j]+a[z];
    sort(v+1,v+l+1);
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
         for(z=1;z<=n;z++)
     {
         y=s-a[i]-a[j]-a[z];
         st=1,dr=l;
         while(st<=dr)
         {
             m=(st+dr)>>1;
             if (y==v[m]) best=v[m],st=dr+2;
             else if (y>v[m]) st=m+1;
             else dr=m-1;
         }
         if (st==dr+2) indi=i,indj=j,indz=z;
     }
     if (best==0) g<<-1;
     else
     {
         for (i=1;i<=n;i++)
              for (j=1;j<=n;j++)
                   for (z=1;z<=n;z++)
                   if (best==a[i]+a[j]+a[z])
              g<<a[indi]<<' '<<a[indj]<<' '<<a[indz]<<' '<<a[i]<<' '<<a[j]<<' '<<a[z],i=j=z=n+1;
     }
    return 0;
}