Cod sursa(job #809482)

Utilizator cnnonNeagu Cristian cnnon Data 8 noiembrie 2012 16:26:50
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <fstream>
#include <stdlib.h>
using namespace std;
int n;
long int s, v[101],nr=0;
struct loto {int poz;long int sum;} a[1000001];

int compare (const void * a, const void * b)
{
  return ( *(long int*)a - *(long int*)b );
}




void citire ()
{
    ifstream d("loto.in");
    d>>n>>s;
    for (int i=1;i<=n;++i)
    d>>v[i];
    d.close();
}

void generare()
{
    qsort (v, n, sizeof(long int), compare);
    int i , j , k;
    for(i=1;i<=n;++i)
        for(j=1;j<=n;j++)
            for(k=1;k<=n;k++)
            {   nr++;
                a[nr].sum=v[i]+v[j]+v[k];
                a[nr].poz=i*100+j*10+k;
            }


}


void parc()
{
    ofstream g("loto.out");
    int j,i;

    for(i=1;i<=nr;++i)
        for(j=i;j<=nr;j++)
        {
            if(a[i].sum+a[j].sum==s)
            {
                g<<v[a[i].poz%10]<<" "; a[i].poz/=10;
                g<<v[a[i].poz%10]<<" "; a[i].poz/=10;
                g<<v[a[i].poz%10]<<" "; a[i].poz/=10;
                g<<v[a[j].poz%10]<<" "; a[j].poz/=10;
                g<<v[a[j].poz%10]<<" "; a[j].poz/=10;
                g<<v[a[j].poz%10]<<" "; a[j].poz/=10;
                return;

            }
        }
    g<<"-1\n";
    return;

}




int main()
{
    citire();
    generare();
    parc();
    return 0;
}