Cod sursa(job #497416)

Utilizator NadoluBogdanNadolu Bogdan NadoluBogdan Data 2 noiembrie 2010 14:43:50
Problema Loto Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
#include<algorithm>
using namespace std;
struct loto{
	int s,x,y,z;
}b[1000001];
int n,s,i,p,u,m,j,a[101],k,ma,S;
int cmp(loto a,loto b){
	return a.s<=b.s;
}
int main(){
ifstream f("loto.in");
ofstream g("loto.out");
	f>>n>>s;
	for (i=1;i<=n;i++)
		f>>a[i];
	
	
	
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j++)
			for(k=j;k<=n;k++){
				ma++;
				b[ma].s=a[i]+a[j]+a[k];
				b[ma].x=i;
				b[ma].y=j;
				b[ma].z=k;
			}
	sort (b+1,b+ma+1,cmp);
	
	for(i=1;i<=ma;i++){
		p=1;
		u=ma;
		S=s-b[i].s;
		while(p<=u){
			m=(p+u)/2;
			if (S==b[m].s){
				g<<a[b[i].x]<<" "<<a[b[i].y]<<" "<<a[b[i].z]<<" "<<a[b[m].x]<<" "<<a[b[m].y]<<" "<<a[b[m].z];
				return 0;
			}
			else
				if (S<b[m].s)
					u=m-1;
				else
					p=m+1;
		}
	}
	g<<"-1";
	return 0;
}