Cod sursa(job #2203456)

Utilizator mihaimodiMihai Modi mihaimodi Data 12 mai 2018 13:43:06
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");

struct numar
{
    int suma;
    int a,b,c;
}v[1000001];

int cmp(numar a, numar b)
{
    return a.suma>b.suma;
}

int vec[101];
int i,j,k,nr,n,s,st,dr,mij,x;

int main()
{
    f>>n>>s;

    for(i=1;i<=n;i++)
        f>>vec[i];

    for(i=1;i<=n;i++)
        for(j=i;j<=n;j++)
            for(k=j;k<=n;k++)
            {
                nr++;
                v[nr].a=vec[i];
                v[nr].b=vec[j];
                v[nr].c=vec[k];
                v[nr].suma=vec[i]+vec[j]+vec[k];
            }

    sort(v+1,v+nr+1,cmp);
    for(i=1;i<=nr;i++)
    {
         st=1;dr=nr;
int         x=s-v[i].suma;
        while(st<=dr)
        {
            mij=(st+dr)/2;
            if(v[mij].suma==x)
            {
                g<<v[mij].a<<' '<<v[mij].b<<' '<<v[mij].c<<' '<<v[i].a<<' '<<v[i].b<<' '<<v[i].c;
                return 0;
            }
            if(v[mij].suma<x)
                dr=mij-1;
            else
                st=mij+1;
        }
    }
    g<<-1;
    return 0;
}