Cod sursa(job #923026)

Utilizator mimisorMimi Birau mimisor Data 22 martie 2013 19:54:09
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int v[101], i, n, s, sum=0, sw, st[101];
int valid(int k)
{ sum=0;
    for (i=1; i<=k; i++)
   sum=sum+v[st[i]];
  if (sum>s ) return 0;

   if (k==6)
    if (sum!=s) return 0;
    if (k>6) return 0;
   return 1;

}
int sol(int k)
{
    if (k==6)
        if (sum==s)
           return 1;
           else
           return 0;
           else
           return 0;
}
void tip()
{ int i;
    for (i=1; i<=6; i++)
    fout<<v[st[i]]<<" ";
}
void back(int k)
{int i;
  for (i=1; i<=n&&sw; i++)
    {st[k]=i;
     //sum=sum+v[st[k]];
     if (valid(k))
        if (sol(k)) {tip();
                     sw=0;
                          }
              else
              back(k+1);
    // sum=sum-v[st[k]];
    }
}
int main()
{ fin>>n>>s;
  for (i=1; i<=n; i++)
    fin>>v[i];
   sort(v+1, v+n+1);
    sw=1;
  back(1);
    if (sw==1) fout<<"-1"<<"\n";
    return 0;
}