Cod sursa(job #2698081)

Utilizator un_fes_galbendaniel guba un_fes_galben Data 20 ianuarie 2021 21:21:32
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.73 kb
#include <fstream>
#include <algorithm>
using namespace std;
int v[105],v1[10],pozz[10];
int main()
{
    ifstream fin("loto.in");
    ofstream fout("loto.out");
    int n,s;
    fin>>n>>s;
    for(int i=1;i<=n;i++)
    {
      fin>>v[i];
    }
    sort(v+1,v+n+1,greater<int>());
        int var=0;
        int sum=v[1]*6,poz=2;
        for(int j=1;j<=6;j++)
        {
          v1[j]=v[1];
          pozz[j]=1;
        }
        while(var==0)
        {
          if(sum>s)
          {
            if(pozz[6]==n)
            {
              int vf=0;
              for(int j=6;j>=1;j--)
              {
                sum-=v1[j];
                if(pozz[j]!=n)
                {
                  vf=1;
                  v1[j]=v[pozz[j]+1];
                  sum+=v1[j];
                  pozz[j]++;
                  for(int k=j+1;k<=6;k++)
                  {
                    v1[k]=v1[k-1];
                    sum+=v1[k];
                    pozz[k]=pozz[k-1];
                  }
                  j=0;
                }
              }
              if(vf==0)
              {
                var=2;
              }
            }
            else
            {
              sum-=v1[6];
              pozz[6]++;
              v1[6]=v[pozz[6]];
              sum+=v1[6];
            }
          }
          else
          {
              if(sum==s)
              {
                var=1;
              }
              else
              {
                  var=2;
              }
          }
        }
    if(var==1)
    {
      for(int i=6;i>=1;i--)
      {
        fout<<v1[i]<<" ";
      }
      fout<<'\n';
    }
    else
    {
      fout<<"-1"<<'\n';
    }
    return 0;
}