Cod sursa(job #775706)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 8 august 2012 18:28:09
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>
#define NMAx 110
#define MMAx 1000100
using namespace std;

int N,S,Nr,A[NMAx],B[MMAx],Used[3][MMAx];

void Afis(int i,int j) {
	
	ofstream out("loto.out");
	
	if(i==-1)
		out<<"-1\n";
	else {
		for(int k=0;k<=2;out<<Used[k++][i]<<' ');
		for(int k=0;k<=2;out<<Used[k++][j]<<' ');
		out<<'\n';
		}
	
	out.close();
	
}
void Solve() {
	
	int i,j,k;
	
	for(i=1;i<=N;i++)
		for(j=i;j<=N;j++)
			for(k=j;k<=N;k++) {
				B[++Nr]=A[i]+A[j]+A[k];
				Used[0][Nr]=i;
				Used[1][Nr]=j;
				Used[2][Nr]=k;
				}
	
	sort(B+1,B+Nr+1);
	
	for(i=1,j=Nr;i<=j;) {
		
		while(B[i]+B[j]>S) j--;
		while(B[i]+B[j]<S) i++;
		
		if(B[i]+B[j]==S) {
			Afis(i,j);
			return;
			}
		
		}
	
	Afis(-1,-1);
	
}
void Citire() {
	
	ifstream in("loto.in");
	in>>N>>S;
	for(int i=1;i<=N;in>>A[i++]);
	in.close();
	
}
int main() {
	
	Citire();
	Solve();
	
	return 0;
	
}