Cod sursa(job #529259)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 4 februarie 2011 16:40:27
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;

ifstream aa("loto.in");
ofstream ss("loto.out");
int n,s,i,j,k,x[101],y[1000001],z[3][1000001],qq[7],nr,pas;
int main() {
	aa >> n >> s;
	for (i=1;i<=n;++i) {
		aa >> x[i];
	}
	sort(&x[1],&x[n]);
	for (i=1;i<=n;++i) {
		for (j=1;j<=n;++j) {
			for (k=1;k<=n;++k) {
				y[++nr]=x[i]+x[j]+x[k];
				z[0][nr]=i; z[1][nr]=j; z[2][nr]=k;
			}
		}
	}
	int q=n*n*n,oo=0;
	for (i=1;i<=nr;++i) {
		pas=1<<18;
		for (j=0;pas>0;pas>>=1) {
			while (j+pas<=q && y[j+pas]+y[i]<=s)
				j+=pas;
		}
		if (y[j]+y[i]==s) {
			qq[1]=z[0][i]; qq[2]=z[1][i]; qq[3]=z[2][i]; qq[4]=z[0][j]; qq[5]=z[1][j]; qq[6]=z[2][j];
			sort(&qq[1],&qq[6]);
			for (i=1;i<=6;++i)
				ss << qq[i] << " ";
			oo=1;
			break;
		}
	}
	if (oo==0) ss << "-1";
	return 0;
}