Cod sursa(job #1886241)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 20 februarie 2017 19:31:38
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
long int b[7],n,k,a[101],maxi=0,poz,s=0;
void sortare()
{
    int sw,aux;
    do
    {
        sw=1;
        for(int i=1;i<n;i++)
            if(a[i]>a[i+1])
        {
            aux=a[i];
            a[i]=a[i+1];
            a[i+1]=aux;
            sw=0;
        }
    }
    while(sw==0);
}
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        {fin>>a[i];
         if(6*a[i]>maxi)
            {maxi=6*a[i];
            poz=i;}}
         if(maxi<k)
            fout<<-1;
            else if(maxi==k)
                fout<<a[poz]<<"  "<<a[poz]<<"  "<<a[poz]<<"  "<<a[poz]<<"  "<<a[poz];
          else
          {
              sortare();
              for(int i=1;i<=6;i++)
              b[i]=a[1];
               int sw=1;
               for(int i=n;i>=2&&sw;i--)
               {
                   int y=7,s=0;
                   for(int j=1;j<=6;j++)
                    s=s+b[j];
                   while(s<k&&y!=1)
                   {
                       y--;
                       s=s-b[y]+a[i];
                    }
                       for(int j=6;j>=y;j--)
                        b[j]=a[i];
                        for(int j=1;j<=6;j++)
                            cout<<b[j]<<"  ";
                       cout<<endl;
                   s=0;
                   for(int j=1;j<=6;j++)
                    s=s+b[j];
                    cout<<s<<endl;
                   if(s==k)
                    sw=0;
                    else
                    b[6]=0;
               }
               if(sw==1)
                fout<<-1;
               else
               {
                   for(int i=1;i<=6;i++)
                    fout<<b[i]<<"  ";
               }
          }

    return 0;
}