Cod sursa(job #751139)

Utilizator svladScurtu Vlad svlad Data 24 mai 2012 17:12:25
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <algorithm>
using namespace std;
long long v[1000];
typedef struct {long long x,y,s;} PUNCT;
PUNCT w[1000001];
inline int cmp(PUNCT a, PUNCT b)
{
	return(a.s<b.s);
}
int main()
{
	ifstream f("loto.in");
	ofstream g("loto.out");
	long long n,i,j,OK=0,x,k,q,t,m;
	long long S,S2;
	f>>n; f>>S; k=0;
	for(i=1;i<=n;i++) 
	{	f>>v[i];}
	for(i=1;i<=n;i++)
	{	for(j=i;j<=n;j++)
		 { for(q=j;q<=n;q++)
			 { w[++k].s=v[i]+v[j]+v[q];
			   w[k].x=i;
			   w[k].y=j;
			 }
		 }
	}
	sort(w+1,w+k+1,cmp);
	OK=1;
	i=0; j=k-1; S2=0;
	while((i<j)&&(w[i].s+w[j].s!=S))
	{	S2=w[i].s+w[j].s;
		if(S2>S) j--;
		else i++;
		S2=w[i].s+w[j].s;
	}
	if(S2==S)
	{	g<<w[i].x<<" "<<w[i].y<<" "<<w[i].s-w[i].x-w[i].y<<" "<<w[j].x<<" "<<w[j].y<<" "<<w[j].s-w[j].x-w[j].y;
	}
	else g<<-1;
	f.close();
	g.close();
	return 0;
}