Pagini recente » Clasamentul arhivei de probleme | Cod sursa (job #2092965)
#include <fstream>
#include <vector>
#define Nmax 105
#define MOD 666013
using namespace std;
ifstream fin ("loto.in");
ofstream fout ("loto.out");
int n, v[Nmax], s, sum, sum1;
struct a{
int sum, a, b, c;
};
vector <a> A[MOD];
void Read()
{
fin >> n >> s;
for(int i=1; i<=n; i++)
fin >> v[i];
}
int main()
{
Read();
for(int i=1; i<=n; i++)
for(int j=i; j<=n; j++)
for(int k=j; k<=n; k++)
{
sum=v[i]+v[j]+v[k];
sum1=sum%MOD;
A[sum1].push_back({sum, v[i], v[j], v[k]});
}
for(int i=1; i<=n; i++)
for(int j=i; j<=n; j++)
for(int k=j; k<=n; k++)
{
sum=v[i]+v[j]+v[k];
if(sum<=s)
{
sum1=(s-sum)%MOD;
int Size=A[sum1].size();
for(int l=0; l<Size; l++)
if(A[sum1][l].sum==(s-sum))
{
fout << v[i] << " " <<v[j]<<" "<<v[k]<<" "<<A[sum1][l].a<<" "<<A[sum1][l].b<<" "<<A[sum1][l].c<<"\n";
return 0;
}
}
}
fout << "-1\n";
}