Cod sursa(job #823719)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 25 noiembrie 2012 16:22:08
Problema Loto Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<fstream>
#include<vector>

#define cst 666013
using namespace std;
int s, s2, s3;
vector<int>v[cst];// definirea unui vector de liste
int cautare(int s) {
    int i, rest=s%cst;
    for(i=0; i<v[rest].size(); i++)
        if(s==v[rest][i])
            return 1;
    return -1;
}

int main() {
    int i, j, k, n, ok=0, vec[10900];

    ifstream f("loto.in");
    ofstream g("loto.out");

    f>>n>>s;
    for(i=1;i<=n;i++)
        f>>vec[i];

    for(i=1;i<=n;i++)
        for(j=i;j<=n;j++)
            for(k=j;k<=n;k++) {
                s2=vec[i]+vec[j]+vec[k];
                v[s2%cst].push_back(s2);
                if(cautare(s-s2)==1) {
                    g<<vec[i]<<" "<<vec[j]<<" "<<vec[k]<<" ";
                    i=j=k=n;
                    ok=1;
                }
		}

    if(ok==1) {
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j++)
			for(k=j;k<=n;k++) {
			    s3=vec[i]+vec[j]+vec[k];
                if(s3==s-s2) {
                    g<<vec[i]<<" "<<vec[j]<<" "<<vec[k];
                    i=j=k=n;
                }
            }
    }

    if(ok==0)
        g<<-1;

    f.close();
    g.close();

    return 0;
}