Cod sursa(job #1701871)

Utilizator VolkazarSerban Rares Volkazar Data 14 mai 2016 12:23:21
Problema Loto Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#define mod 99713
using namespace std;
vector<int> v[mod+5],x[mod+5],y[mod+5],z[mod+5];
int key,aux,a[105],n,s,val,fix;
int finds(int a)
{
    key=a%mod;
    fix=v[key].size();
    for(int f=0;f<fix;f++)
    {
        if(v[key][f]==a) return f;
    }
    return -1;
}
inline void inserts(int m,int b,int c,int d)
{
    key=m%mod;
    v[key].push_back(m);
    x[key].push_back(b);
    y[key].push_back(c);
    z[key].push_back(d);
}
int main()
{
    ifstream f("loto.in");
    ofstream g("loto.out");
    f>>n>>s;
    for(int i=1;i<=n;i++)
    f>>a[i];

    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++)
          for(int k=j;k<=n;k++)
    {
        val=a[i]+a[j]+a[k];

        if(finds(val)==-1)
        {
            inserts(val,a[i],a[j],a[k]);
        }
        aux=finds(s-val);
        if(aux!=-1)
        {

            key=(s-val)%mod;
            g<<a[i]<<' '<<a[j]<<' '<<a[k]<<' '<<x[key][aux]<<' '<<y[key][aux]<<' '<<z[key][aux];
            return 0;
        }
    }
    g<<"-1";

    return 0;
}