Cod sursa(job #809508)

Utilizator cnnonNeagu Cristian cnnon Data 8 noiembrie 2012 16:51:06
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.42 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];

void sortare ()
{
    int p, k;
    k=1;
    while (k)
    {k=0;
    for (int i=1;i<n;++i)
    if (v[i]>v[i+1])
    {
        p=v[i+1];
        v[i+1]=v[i];
        v[i]=p;
        k=1;
    }
    }
    return;
}

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




void generare()
{
    sortare();
    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=1;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;
}