Cod sursa(job #1318799)

Utilizator FiliutaMariusFMI Filiuta Marius FiliutaMarius Data 16 ianuarie 2015 12:46:26
Problema Loto Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 1.07 kb
#include<fstream>
#include<unordered_set>
using namespace std;
int main()
    {
    ifstream in("loto.in");
    ofstream out("loto.out");
    unordered_set <long long> h;
    int i,n,test,j,k,v[101];
    long long s,nr;
	in>>n>>s;
	for(i=0;i<n;i++)
		in>>v[i];
	test=0;
	for(i=0;i<n;i++)
	{
		if(test)
			break;
		for(j=0;j<n;j++)
		{
			if(test)
				break;
			for(k=0;k<n;k++)
			{
				if(test)
					break;
				h.insert(v[i] + v[j] + v[k]);
				if(h.find(s - v[i] - v[j] - v[k])!=h.end())
					{
					    test=1;
                        out<<v[i]<<' '<<v[j]<<' '<<v[k]<<' ';
                        nr=s-v[i]-v[j]-v[k];
					}
			}
		}
	}
	if(!test)
		out<<-1;
	else
	{
		test=0;
		for(i=0;i<n;i++)
		{
			if(test==1)
				break;
			for(j=0;j<n;j++)
			{
				if(test)
                    break;
				for(k=0;k<n;k++)
				{
					if(test)
						break;
					if(nr==v[i]+v[j]+v[k])
                    {
                        test=1;
                        out<<v[i]<<' '<<v[j]<<' '<<v[k]<<' ';
                    }
				}
			}
		}
	}
}