Cod sursa(job #1111368)

Utilizator denis_tdrdenis tdr denis_tdr Data 18 februarie 2014 20:25:50
Problema Loto Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
#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(){}
};
int n, s;
vector<int> v;
vector<triplet> t;
ofstream g("loto.out");
void citire(){
    ifstream f("loto.in");
    f>>n>>s;
    while(f>>n)
        v.push_back(n);
    n=v.size();
    v.resize(n);
}
bool cmp1(triplet t1, triplet t2 )
{
    return t1.s<t2.s;
}
bool cmp2(triplet t1, int s)
{
    return t1.s<s;
}
void afisT(triplet t){
    g<<t.a<<" "<<t.b<<" "<<t.c<<" ";
}
int main(){
    citire();
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            for(int k=0;k<n;k++)
                t.push_back(triplet(v[i], v[j], v[k]));
    sort(t.begin(), t.end(), cmp1);

    vector<triplet>::iterator it=t.begin();
    for(int i=0;i<t.size();i++)
    {
        it=lower_bound(t.begin(), t.end(), s-t[i].s, cmp2);
        if(it->s + t[i].s==s)
            {afisT(*it), afisT(t[i]), cout<<"\n"; return 0;}
    }
    return 0;
}