Cod sursa(job #2047245)

Utilizator DawlauAndrei Blahovici Dawlau Data 24 octombrie 2017 17:52:03
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<fstream>
#include<unordered_map>
#include<ctime>
#include<iostream>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct sums{
    int c1,c2,c3;
};
const int NMAX=105;
int numbers[NMAX],s,n;
unordered_map<int,sums>sum;
void read_data(){
    int i;
    fin>>n>>s;
    for(i=1;i<=n;++i)
        fin>>numbers[i];
}
void preprocesssums(){
    int i,j,k,poz;
    for(i=1;i<=n;++i)
        for(j=1;j<=n;++j)
            for(k=1;k<=n;++k){
                sum[numbers[i]+numbers[j]+numbers[k]]={numbers[i],numbers[j],numbers[k]};
                if(numbers[i]+numbers[j]+numbers[k]<=s){
                    unordered_map<int,sums>::iterator poz=sum.find(s-(numbers[i]+numbers[j]+numbers[k]));
                    if(poz!=sum.end()){
                        fout<<numbers[i]<<' '<<numbers[j]<<' '<<numbers[k]<<' '<<(poz->second).c1<<' '<<(poz->second).c2<<' '<<poz->second.c3;
                        return ;
                    }
                }
            }
    fout<<-1;
}
int main(){
    read_data();
    preprocesssums();
}