Cod sursa(job #1803252)

Utilizator andy1207Cioltan Andrei andy1207 Data 11 noiembrie 2016 10:10:56
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.59 kb
#include<cstdio>
#include<vector>
#include<algorithm>

const int Nmax=100;
const int Max=100000000;

int v[Nmax+1];
int vv[Max+1];

int main()
{
 int n,p,s,sum;
 freopen("loto.in","r",stdin);
 freopen("loto.out","w",stdout);
 scanf("%d%d",&n,&p);
 for(int i=1;i<=n;i++)
    {
     scanf("%d",&v[i]);
    }
 int e=0;
 for(int i=1;i<=n;i++)
    {
     for(int j=1;j<=n;j++)
        {
         for(int f=1;f<=n;f++)
            {
             s=v[i]+v[j]+v[f];
             vv[++e]=s;
            }
        }
    }
 std::sort(vv+1,vv+e+1);
 int pp=0,st=1,dr=e;
 sum=0;
 while(st<=dr && pp==0)
      {
       sum=vv[st]+vv[dr];
       if(sum>p)
          {
           dr--;
          }
       else
          {
           if(sum==p)
              pp=1;
           else
              st++;
          }
      }
 if(pp==1)
    {
     int xx=vv[st],yy=vv[dr],q,w,r,t,y,u;
     for(int i=1;i<=n;i++)
        {
         for(int j=1;j<=n;j++)
            {
             for(int f=1;f<=n;f++)
                {
                 s=v[i]+v[j]+v[f];
                 if(s==xx)
                    {
                     q=v[i];
                     w=v[j];
                     r=v[f];
                    }
                 if(s==yy)
                    {
                     t=v[i];
                     y=v[j];
                     u=v[f];
                    }
                 vv[++e]=s;
                }
            }
        }
     printf("%d %d %d %d %d %d",q,w,r,t,y,u);
     printf("\n");
    }
 else
    {
     printf("-1\n");
    }
return 0;
}