Pagini recente » Cod sursa (job #2452480) | preoni-2007/runda-finala/poze/premiere | Cod sursa (job #2443216) | Istoria paginii runda/wooble-9/clasament | Cod sursa (job #1008666)
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
std::vector<int>_vNumbers,_vTickets;
//----------------------------------------------------
void citire(int *iSuma)
{
FILE * fin = fopen("loto.in","r");
int iN;
fscanf(fin,"%d %d",&iN,iSuma);
int iNumber;
for (int i=0; i<iN; i++)
{
fscanf(fin,"%d",&iNumber);
if (iNumber < *iSuma)
_vNumbers.push_back(iNumber);
}
fclose(fin);
}
//----------------------------------------------------
int main()
{
int iSuma;
citire(&iSuma);
sort(_vNumbers.begin(),_vNumbers.end());
for (int i=0; i<_vNumbers.size(); i++)
{
while ((i<_vNumbers.size())&&(_vNumbers[i]==_vNumbers[i+1]))
i++;
_vTickets.push_back(_vNumbers[i]);
}
FILE * fout = fopen("loto.out","w");
int a,b,c,d,e,f,s1,s2,s3,s4,s5,s6;
for (a=0; a<_vTickets.size(); a++)
for (b=0; b<_vTickets.size(); b++)
{
s2=_vTickets[a]+_vTickets[b];
if (s2>= iSuma) break;
for (c=0; c<_vTickets.size(); c++)
{
s3=s2+_vTickets[c];
if (s3 >= iSuma) break;
for (d=0; d<_vTickets.size(); d++)
{
s4=s3+_vTickets[d];
if (s4 >= iSuma) break;
for (e=0; e<_vTickets.size(); e++)
{
s5=s4+_vTickets[e];
if (s5 >= iSuma) break;
for (f=0; f<_vTickets.size(); f++)
{
s6=s5+_vTickets[f];
if (s6 == iSuma)
{
fprintf(fout,"%d %d %d %d %d %d",_vTickets[a],_vTickets[b],_vTickets[c],_vTickets[d],_vTickets[e],_vTickets[f]);
fclose(fout);
return 0;
}
}
}
}
}
}
fprintf(fout,"-1");
fclose(fout);
return 0;
}