Cod sursa(job #1319435)

Utilizator sanzianaioneteIonete Sanziana sanzianaionete Data 16 ianuarie 2015 23:49:22
Problema Loto Scor 75
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 1.62 kb
#include <vector>
#include <fstream>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct suma
{
    int v,e1,e2,e3;
};
int main()
{
    vector <suma> sum[10010];
    bool l;
    int num,y,n,a[200],s,key;
    f>>n>>s;
    for(int i=1;i<=n;i++)
        f>>a[i];
    for(int i1=1;i1<=n;i1++)
        for(int i2=1;i2<=n;i2++)
            for(int i3=1;i3<=n;i3++)
            {
                key=(a[i1]+a[i2]+a[i3])%10007;
                l=0;
                for(y=0;y<sum[key].size();y++)
                {
                    if(a[i1]+a[i2]+a[i3]==sum[key][y].v)
                    {
                        l=1;
                        break;
                    }
                }
                if(!l)
                {
                    suma p;
                    p.v=a[i1]+a[i2]+a[i3];
                    p.e1=a[i1];p.e2=a[i2];p.e3=a[i3];
                    sum[key].push_back(p);
                }
            }
    for(int i=0;i<10007;i++)
    {
        for(int j=0;j<sum[i].size();j++)
        {
            int e=sum[i][j].v;num=s-e;
            key=num%10007;
            l=0;
            for(y=0;y<sum[key].size();y++)
                if(num==sum[key][y].v)
                {
                    g<<sum[i][j].e1<<' '<<sum[i][j].e2<<' '<<sum[i][j].e3<<' '<<sum[key][y].e1<<' '<<sum[key][y].e2<<' '<<sum[key][y].e3<<"\n";
                    l=1;
                    break;
                }
            if(l)
                break;
        }
        if(l)
            break;
    }
    if(!l)
        g<<"-1\n";
    f.close();g.close();
    return 0;
}