Pagini recente » Cod sursa (job #136326) | Cod sursa (job #1581032) | Cod sursa (job #2097340) | Cod sursa (job #884750) | Cod sursa (job #863438)
Cod sursa(job #863438)
#include<cstdio>
#include<vector>
#include<fstream>
#define M 666013
using namespace std;
int s, s2, s3;
vector<int>v[M];
int caut(int s)
{
int i, rest=s%M;
for(vector<int>:: iterator it = v[rest].begin(); it!=v[rest].end(); ++it)
if(*it == s)
return 1;
return -1;
}
int main()
{
int i, j, k, n, ok=0, aux[10900];
ifstream f("loto.in");
ofstream g("loto.out");
f>>n>>s;
for(i=1;i<=n;i++)
f>>aux[i];
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{
s2=aux[i]+aux[j]+aux[k];
v[s2%M].push_back(s2);
if(caut(s-s2)==1)
{
g<<aux[i]<<" "<<aux[j]<<" "<<aux[k]<<" ";
i=j=k=n;
ok=1;
}
}
if(ok==1)
{
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{
s3=aux[i]+aux[j]+aux[k];
if(s3==s-s2)
{
g<<aux[i]<<" "<<aux[j]<<" "<<aux[k];
i=j=k=n;
}
}
}
if(ok==0)
g<<-1;
f.close();
g.close();
return 0;
}