Cod sursa(job #2035648)

Utilizator Dinu2005Dinu I Dinu2005 Data 9 octombrie 2017 18:41:23
Problema Loto Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <map>
using namespace std;
struct loto{
    int nr1,nr2,nr3;
};
map <int,loto> m;
int a[105];
int sum[1000005];
int main()
{
    ifstream cin("loto.in");
    ofstream cout("loto.out");
    int n,i,j,k,s,max,min;
    cin>>n>>s;
    cin>>a[1];
    max=a[1];
    min=a[1];
    for(i=2;i<=n;++i){
        cin>>a[i];
        if(a[i]>max)
            max=a[i];
        if(a[i]<min)
            min=a[i];
    }
    if(max*6<s || min*6>s){
        cout<<-1;
        return 0;
    }
    int poz=0;
    for(i=1;i<=n;++i){
        for(j=i;j<=n;++j)
            for(k=j;k<=n;++k){
                loto x;
                x.nr1=a[i];
                x.nr2=a[j];
                x.nr3=a[k];
                if(m[a[i]+a[j]+a[k]].nr1==0)
                   sum[++poz]=a[i]+a[j]+a[k];
                   m[a[i]+a[j]+a[k]]=x;

            }
    }
    for(i=1;i<=poz;++i){
        if(m[s-sum[i]].nr1){
            cout<<m[sum[i]].nr1<<" "<<m[sum[i]].nr2<<" "<<m[sum[i]].nr3<<" "<<m[s-sum[i]].nr1<<" "<<m[s-sum[i]].nr2<<" "<<m[s-sum[i]].nr3;
            return 0;
        }
    }
    return 0;
}