Cod sursa(job #2698081)
Utilizator | 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;
}