Pagini recente » Cod sursa (job #1061415) | Cod sursa (job #1568199) | Cod sursa (job #2181224) | Cod sursa (job #2781906) | Cod sursa (job #2299936)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
const int MOD=666013;
vector <int> ceva[MOD];
int v[1000001],a[101];
bool verif(int poz,int val)
{
for(int i=0; i<ceva[poz].size(); i++)
if(ceva[poz][i]==val)
return 1;
return 0;
}
int main()
{
int n,s,i,j,l,x=-1,cnt=0,cnt1=0;
in>>n>>s;
for(i=1; i<=n; i++)
in>>a[i];
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
for(l=j; l<=n; l++)
if(!verif((a[i]+a[j]+a[l])%MOD,a[i]+a[j]+a[l]))
ceva[(a[i]+a[j]+a[l])%MOD].push_back(a[i]+a[j]+a[l]);
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
for(l=j; l<=n; l++)
if(verif((s-(a[i]+a[j]+a[l])+MOD)%MOD,s-(a[i]+a[j]+a[l])))
{x=s-a[i]-a[j]-a[l];break;}
if(x==-1)
{
out<<"-1";
return 0;
}
for(i=1; i<=n&&cnt+cnt1<2; i++)
for(j=i; j<=n&&cnt+cnt1<2; j++)
for(l=j; l<=n&&cnt+cnt1<2; l++)
if(a[i]+a[j]+a[l]==x&&cnt==0)
{cnt=1;
out<<a[i]<<" "<<a[j]<<" "<<a[l]<<" ";}
else if(a[i]+a[j]+a[l]==s-x&&cnt1==0)
{
cnt1=1;
out<<a[i]<<" "<<a[j]<<" "<<a[l]<<" ";
}
return 0;
}