Pagini recente » Cod sursa (job #312665) | Cod sursa (job #436322) | Cod sursa (job #1632268) | Cod sursa (job #3192474) | Cod sursa (job #1068703)
//
// main.cpp
// loto+
//
// Created by Catalina Brinza on 12/10/13.
// Copyright (c) 2013 Catalina Brinza. All rights reserved.
//
#include <fstream>
#include <vector>
#define nr 666013
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct structy
{
int x,y,s;
};
vector <structy> v[nr];
int cautare(int val)
{int i;
int zona=val%nr;
for (i=0;i<v[zona].size();++i)
if (v[zona][i].s==val) return i;
return -1;
}
int main()
{int n,s,i,ji,k,sum,p;
int a[101];
f>>n>>s;
for (i=0;i<n;++i) f>>a[i];
for (i=0;i<n;++i)
for (ji=0;ji<n;++ji)
for (k=0;k<n;++k)
{
sum=a[i]+a[ji]+a[k];
if (sum<s) {
p=cautare(sum);
if (p==-1)
{structy q;
q.s=sum;
if (sum*2==s)
{
g<<a[i]<<' '<<a[i]<<' '<<a[ji]<<' '<<a[ji]<<' '<<a[k]<<' '<<a[k];
g.close();return 0;
}q.x=a[i];
q.y=a[ji];
v[sum%nr].push_back(q);
}}
}
f.close();
for (i=0;i<n;++i)
for (ji=0;ji<n;++ji)
for (k=0;k<n;++k)
{
sum=a[i]+a[ji]+a[k];
if (s-sum>0)
{ p=cautare(s-sum);
if (p!=-1)
{
g<<a[i]<<' '<<a[ji]<<' '<<a[k]<<' '<<v[(s-sum)%nr][p].x<<' '<<v[(s-sum)%nr][p].y<<' '<<v[(s-sum)%nr][p].s-v[(s-sum)%nr][p].x-v[(s-sum)%nr][p].y; g.close();
return 0;
}}
}
g<<-1;
g.close();
return 0;
}