Cod sursa(job #61263)

Utilizator FlorianFlorian Marcu Florian Data 18 mai 2007 19:16:18
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<stdio.h>
long v[1000],n;
long x,i,k,p,j,s,a[1000],ii,jj,m,iii[1000],jjj[1000],kk[1000];
void bubble()
	{
	int i;
	long ok,aux;
	do
		{
		ok=1;
		for(i=1;i<p;++i)
			if(v[i]>v[i+1])
				{
				aux=v[i]; v[i]=v[i+1]; v[i+1]=aux;
				aux=iii[i]; iii[i]=iii[i+1]; iii[i+1]=aux;
				aux=jjj[i]; jjj[i]=jjj[i+1]; jjj[i+1]=aux;
				aux=kk[i]; kk[i]=kk[i+1]; kk[i+1]=aux;
				ok=0;
				}
			}
	while(ok==0);
	}

int main()
{
  FILE*f=fopen("loto.in","r");
  FILE*g=fopen("loto.out","w");
  fscanf(f,"%ld %ld",&n,&s);
  for (i=1;i<=n;i++) fscanf(f,"%ld",&a[i]);
  for(i=1;i<=n;++i)
	for(j=1;j<=n;++j)
		for(k=1;k<=n;++k)
		       {
			v[++p]=a[i]+a[j]+a[k];
			iii[p]=i;
			jjj[p]=j;
			kk[p]=k;
			}
  bubble();
  for(i=1;i<=p;++i)
	{
	x=v[i];
	ii=i; jj=p;
	while(ii<=jj)
		{
		m=(ii+jj)/2;
		if(v[m]==s-x) { fprintf(g,"%ld %ld %ld %ld %ld %ld",iii[m],iii[i],jjj[m],jjj[i],kk[m],kk[i]);  return 0;}
		 else
			if(v[m]>s-x) jj=m-1;
			else ii=m+1;
		 }
		}


  fprintf(g,"-1");
  fclose(f);
  fclose(g);
  return 0;}