Cod sursa(job #857785)

Utilizator mvcl3Marian Iacob mvcl3 Data 18 ianuarie 2013 12:52:48
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.34 kb
//Solutie 2
#include<vector>
#include<fstream>
using namespace std;

ifstream f("loto.in"); ofstream g("loto.out");
const int MOD = 200003;
const int NMAX = 1000009;
int n, s, c[NMAX];

struct nod
{
    int s;
    int x;
    int y;
    int z;
} el;
vector<nod> v[NMAX];

int main()
{
    f>>n>>s;
    for(int i = 1; i <= n; ++i) f>>c[i];

    for(int i = 1; i <= n; ++i)
        for(int j = i; j <= n; ++j)
            for(int k = j; k <= n; ++k)
            {
                if(c[i] + c[j] + c[k] <= s)
                {
                    el.s = c[i] + c[j] + c[k], el.x = c[i], el.y = c[j], el.z = c[k];
                    if(el.s > MOD) v[el.s - MOD].push_back(el);
                    else v[el.s].push_back(el);
                    int s1 = s - c[i] - c[j] - c[k];
                    vector<nod> :: iterator it;
                    int x = s1;
                    if(x > MOD) x -= MOD;
                    for(int q = 0; q < v[x].size(); ++q)
                        if(v[x][q].s == s1)
                        {
                            g<<c[i]<<' '<<c[j]<<' '<<c[k]<<' '<<v[x][q].x<<' '<<v[x][q].y<<' '<<v[x][q].z<<'\n';
                            g.close();
                            return 0;
                        }
                }
            }
    g<<-1<<'\n';
    g.close();
    return 0;
}