Cod sursa(job #527469)

Utilizator S7012MYPetru Trimbitas S7012MY Data 31 ianuarie 2011 19:08:52
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <set>
#define DN 105
using namespace std;

int v[DN],n,s,rez[8];
set<int> m;
bool ok;

void find(int s) {
    int i, j, k;
    for(i=1; i<=n; ++i) for(j=i; j<=n; ++j) for(k=j; k<=n; ++k) if(v[i]+v[j]+v[k]==s) {
        rez[++rez[0]]=v[i];
        rez[++rez[0]]=v[j];
        rez[++rez[0]]=v[k];
        return;
    }
}


int main()
{
    ifstream f("loto.in");
    ofstream g("loto.out");
    f>>n>>s;
    int i,j,k,s1,s2;
    for(i=1; i<=n; ++i)  f>>v[i];
    for(i=1; i<=n; ++i) for(j=i; j<=n; ++j) for(k=j; k<=n; ++k) m.insert(v[i]+v[j]+v[k]);
    for(i=1; i<=n; ++i) for(j=i; j<=n; ++j) for(k=j; k<=n; ++k) {
        s1=v[i]+v[j]+v[k]; s2=s-s1;
        if(m.find(s2)!=m.end()) {
            ok=1;
            goto sf;
        }
    }
    sf: ;
    if(ok) {
        find(s1); find(s2);
        for(i=1; i<=6; ++i) g<<rez[i]<<' ';
    }else g<<"-1";
    return 0;
}