Cod sursa(job #1369142)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 2 martie 2015 22:11:55
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include <fstream>
#include <vector>
#include <set>
#include <algorithm>
#define nmax 105
#define hash 66013
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,s,s1,a[nmax],m,pmax=1<<6;
struct suma {int s;int i;int j;int k;};
suma v[nmax*nmax*nmax];
int sol[10];

int cautbin(int x)
{
    int q=0,p=pmax;
    for (p=pmax;p>=1;p=p>>1)
        if (p+q<=m&&v[q+p].s<=x)
                q+=p;
    if (x==v[q].s)
        return q;
    return -1;
}
bool compare(const suma &x, const suma &y)
{
    return x.s<y.s;
}
int main()
{
    int i,j,k,t,r;
    f>>n>>s;
    for (i=1;i<=n;i++)
        f>>a[i];
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
            for (k=1;k<=n;k++) {
                    m++;
                    v[m].i=i;
                    v[m].j=j;
                    v[m].k=k;
                    v[m].s=a[i]+a[j]+a[k];
            }
    sort(v+1,v+m+1,compare);
/*
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
            for (k=1;k<=n;k++) {
                    s1=s-a[i]-a[j]-a[k];
                    t=cautbin(s1);
                    if (t!=-1) {
                        sol[1]=a[i];sol[2]=a[j];sol[3]=a[k];
                        sol[4]=v[t].i;sol[5]=v[t].j;sol[6]=v[t].k;
                        sort(sol+1,sol+6+1);
                        for (r=1;r<=5;r++)
                            g<<sol[r]<<' ';
                        g<<sol[6]<<'\n';
                        return 0;
                    }
            }
*/
    g<<-1<<'\n';
    return 0;
}