Cod sursa(job #1111506)

Utilizator denis_tdrdenis tdr denis_tdr Data 18 februarie 2014 21:54:37
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <vector>
#include <algorithm>
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(){}
};

bool cmp1(triplet a, triplet b){
    return a.s<b.s;
};
int n, s;
int v[101];
vector<triplet> 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.push_back(triplet(v[i], v[j], v[k]));

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