Cod sursa(job #51477)

Utilizator FlorianFlorian Marcu Florian Data 13 aprilie 2007 17:11:44
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>
long v[1000],n;
int Divide(long i,long j) //impart secventa de la x[i] la x[j]
  { int x;
    x=v[i];
    while (i<j)
      { while (i<j && x<v[j]) j--;
	v[i]=v[j];
	while (i<j && x>v[i]) i++;
	v[j]=v[i];}
    v[i]=x;
    return i;}
int QuickSort (int i,int j)
  { int m;
    if (i<j) { m=Divide(i,j);
	       QuickSort (1,m-1);
	       QuickSort (m+1,j);
	       } return 0;}
int main()
{
  long i,k,p,a,j,s,r,ok=1;
  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",&v[i]);
  QuickSort (1,n);
  for(i=n;i>=1;i--)
     {if (!ok) break;
	for(j=n;j>=i;j--)
	{if (!ok) break;
	for(r=n;r>=j;r--)
	{if (!ok) break;
	for (k=n;k>=r;k--)
	{if (!ok) break;
	for(p=n;p>=k;p--)
	{if (!ok) break;
	for (a=n;a>=p;a--)
		{
       if(v[i]+v[j]+v[r]+v[k]+v[p]+v[a]==s)
	 {ok=0;fprintf(g,"%ld %ld %ld %ld %ld %ld",v[i],v[j],v[r],v[k],v[p],v[a]); break;}        }    }}}}}
  if (ok!=0) fprintf(g,"-1");


  fclose(f);
  fclose(g);return 0;}