Cod sursa(job #675374)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 7 februarie 2012 16:28:13
Problema Loto Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
struct date {
	int s,x,y,z;
};
vector <date> a[666013];
int v[101];
date cauta(int x)
{
	int n,i,k;
	date nr;
	k=x%666013;
	n=int(a[k].size())-1;
	for(i=0;i<=n;i++)
		if(a[k][i].s==x)
			return a[k][i];
	nr.s=-1;
	return nr;
}
int main ()
{
	int n,i,j,k,sum,c,s;
	date nr;
	ifstream f("loto.in");
	ofstream g("loto.out");
	f>>n>>sum;
	for(i=1;i<=n;i++)
		f>>v[i];
	f.close();
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			for(k=1;k<=n;k++) {
				s=v[i]+v[j]+v[k];
				if(s<=sum) {
					nr.s=s;
					nr.x=v[i];
					nr.y=v[j];
					nr.z=v[k];
					a[s%666013].push_back(nr);
				}
			}
	for(i=1;i<=n;i++) 
		for(j=1;j<=n;j++) 
			for(k=1;k<=n;k++) {
				c=sum-(v[i]+v[j]+v[k]);
				if(c>=0) 
					nr=cauta(c);
				else nr.s=-1;
                if(nr.s!=-1){
					g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<nr.x<<" "<<nr.y<<" "<<nr.z;
					g.close();
					return 0;
				}
			}
	g<<"-1";
	g.close();
	return 0;
}