Pagini recente » Cod sursa (job #2750314) | Monitorul de evaluare | Cod sursa (job #1620079) | Cod sursa (job #1305092) | Cod sursa (job #381851)
Cod sursa(job #381851)
#include<fstream>
using namespace std;
#define inFile "loto.in"
#define outFile "loto.out"
int N, V[100], sol, i, j, k, l, m, n;
long long int s;
fstream f(inFile, ios::in), g(outFile, ios::out);
void qSort(int vector[],int st,int dr)
{
int temp,min,max,mijl;
mijl = vector[st+(dr-st)/2]; //luam mijlocul intervalului
min = st; max = dr;
do
{
while(vector[min] < mijl) min++; //crescator
while(vector[max] > mijl) max--; //crescator
if(min <= max)
{
temp = vector[min];
vector[min++] = vector[max];
vector[max--] = temp;
}
}while(min <= max);
if(st < max) qSort(vector,st,max); //crescator
if(dr > min) qSort(vector,min,dr); //crescator
}
int main()
{
f >> N >> s;
for(i=1; i <= N; i++)
f >> V[i];
qSort(V, 1, N);
for(i=1;i <= N && sol != 1;i++)
for(j=1;j <= N && sol != 1;j++)
for(k=1;k <= N && sol != 1;k++)
for(l=1;l <= N && sol != 1;l++)
for(m=1; m <= N && sol != 1;m++)
for(n=1;n <= N && sol != 1;n++)
if (V[i] + V[j] + V[k] + V[l] + V[m] + V[n] == s)
{
g << V[i] << " " << V[j] << " " << V[k] << " " << V[l] << " " << V[m] << " " << V[n];
sol++;
}
if(sol == 0)
g << -1;
f.close();
g.close();
return 0;
}