Cod sursa(job #759696)

Utilizator cosmy94Hogas Stefan Cosmin cosmy94 Data 18 iunie 2012 23:25:31
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
#include<algorithm>
using namespace std;


ifstream f("loto.in");
ofstream g("loto.out");
long long s;
long long a[102],b[1000007],suma;
int i,ii,j,k,n;
bool gasit (long long X ) {
	
	int p,u,mid;
	p=1;
	u=k;
	while(p<=u){
		
		mid=(p+u)/2;
		if(b[mid]==X)
			return 1;
		if(b[mid]<X)
			p=mid+1;
		else
			u=mid-1;
	}
	return 0;
	
}
void afis (long long  S) {
	int i,ii,j;
	for(i=1;i<=n;i++)
		
		for(ii=i;ii<=n;ii++)
			
			for(j=ii;j<=n;j++)
				if(S==a[i]+a[ii]+a[j]){
					g<<a[i]<<" "<<a[ii]<<" "<<a[j];
					return ;
				}
	return ;
}
int main () {
	
	f>>n>>suma;
	
	
	for(i=1;i<=n;i++)
		f>>a[i];
	
	for(i=1;i<=n;i++)
		
		for(ii=i;ii<=n;ii++)
			
			for(j=ii;j<=n;j++)
				
				b[++k]=a[i]+a[ii]+a[j];
			
	sort(1+b,1+b+k);
	
	
	for(i=1;i<=k;i++)
		if(gasit(suma-b[i])) {
			
			afis(b[i]);
			g<<" ";
			afis(suma-b[i]);
			return 0;
			
		}
	g<<-1<<"\n";
	return 0;
}