Cod sursa(job #1047182)

Utilizator RaduStefanFMI - Radu Stefan RaduStefan Data 4 decembrie 2013 00:00:46
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <vector>
#include <fstream> 
using namespace std;
long long H[666013][4];

/*int cauta(long long val)
{
	if(H[val%666013][3]==1)
   // for(i=0;i<m;i++)
    //  if(H[val%666013][i]==val)
    //    return i;
	if(m>0)return 1;
    return -1;
}*/
 
void inserare(long long val,long long a,long long  b,long long c)
{
    if(H[val%666013][3]==0)
	{
		H[val%666013][0]=a;
		H[val%666013][1]=b;
		H[val%666013][2]=c;
		H[val%666013][3]=1;
	}
	  
}

int main()
{
	long long n,s,i,j,k,s2,s3,ok2=0,a;
	long long v[10000];
    ifstream fcin("loto.in");
	ofstream fcout("loto.out");
	fcin>>n>>s;
	for(i=1;i<=n;i++)
		fcin>>v[i];
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j++)
			for(k=j;k<=n;k++)
			{
				s2=v[i]+v[j]+v[k];
				inserare(s2,v[i],v[j],v[k]);
			}
	for(i=1;i<=n&&ok2==0;i++)
		for(j=i;j<=n&&ok2==0;j++)
			for(k=j;k<=n&&ok2==0;k++)
			{
				s2=v[i]+v[j]+v[k];
				s3=s-s2;
				if(H[s3%666013][3]==1)
				{
					for(a=0;a<3;a++)
						fcout<<H[s2&666013][a]<<" ";
					for(a=0;a<3;a++)
						fcout<<H[s3&666013][a]<<" ";
					ok2=1;
				}
			}
	if(ok2==0)fcout<<"-1";
	return 0;
}