Cod sursa(job #1317929)

Utilizator KOzarmOvidiu Badea KOzarm Data 15 ianuarie 2015 13:25:35
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int a[101],n,s,i,j,k,i1,j1,k1,p,q,stg,dr,mij;
struct bas
{
	int x;int y; int z;int nr;
};
bas b[1000001];
bool cmp(bas x,bas y)
{
	return(x.nr<y.nr);
}
int main()
{
    fin>>n>>s;
    for(i=1;i<=n;i++)
    	fin>>a[i];
	for(i=1;i<=n;i++)
	for(j=i;j<=n;j++)
	for(k=i;k<=n;k++)
	{
		p++;
		b[p].x=i;
		b[p].y=j;
		b[p].z=k;
		b[p].nr=a[i]+a[j]+a[k];
	}
	sort(b+1,b+p+1,cmp);
	for(i=1;i<=p;i++)
	{
		stg=1;dr=p;
		q=s-b[i].nr;
		while(stg<=dr)
		{
			mij=(stg+dr)/2;
			if(q==b[mij].nr)
				{fout<<a[b[i].x]<<" "<<a[b[i].y]<<" "<<a[b[i].z]<<" "<<a[b[mij].x]<<" "<<a[b[mij].y]<<" "<<a[b[mij].z];
				return 0;}
			else
			if(q<b[mij].nr)
				dr=mij-1;
			else
				stg=mij+1;
		}
	}
	fout<<"-1";
	return 0;
}