Cod sursa(job #1111424)

Utilizator denis_tdrdenis tdr denis_tdr Data 18 februarie 2014 21:14:24
Problema Loto Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb

#include <fstream>
#include <set>
using namespace std;
typedef struct triplet{
    int a, b, c, s;
    triplet(int x, int y, int z){a=x; b=y; c=z; s=x+y+z;}
    triplet(){}
};
class comp1{
    public: bool operator()(triplet a, triplet b){
    return a.s<b.s;
    };
};

int n, s;
int v[101];
set<triplet, comp1> t;
ofstream g("loto.out");

void afisT(triplet t){ g<<t.a<<" "<<t.b<<" "<<t.c<<" ";}
int main(){
    ifstream f("loto.in");
    f>>n>>s;
    for(int i=0;i<n;i++)
        f>>v[i];
    f.close();

    for(int i=0;    i<n;    i++)
    for(int j=i;  j<n;    j++)
    for(int k=j;  k<n;    k++)
                t.insert(triplet(v[i], v[j], v[k]));

    set<triplet, comp1>::iterator it, it2;
    triplet cautat;
    it=t.begin();
    while(it!=t.end())
    {
        cautat.s=s-it->s;
        it2=t.find(cautat);
        if(it2!=t.end())
        {
            afisT(*it), afisT(*it2);
            g.close();
            return 0;
        }
        it++;
    }
    g<<"-1";
    g.close();
    return 0;
}