Cod sursa(job #2249378)

Utilizator ciutanpCiuta Andrei Calin ciutanp Data 29 septembrie 2018 17:58:39
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");

struct l{
int a,b,c;
long long s;
}v[1000005];
int n,ar[101],sum,nr;
bool cmp(l x,l y)
{
    return x.s>y.s;
}
int main()
{
    f>>n>>sum;
    for(int i=1;i<=n;++i)
        f>>ar[i];
    for(int i=1;i<=n;++i)
        for(int j=i;j<=n;++j)
            for(int k=j;k<=n;++k)
    {
        v[++nr].s=ar[i]+ar[j]+ar[k];
        v[nr].a=ar[i];
        v[nr].b=ar[j];
        v[nr].c=ar[k];
    }
    sort(v+1,v+nr+1,cmp);
    for(int i=1;i<=nr;++i)
    {
        int st=i;
        int dr=nr;
        long long ss=sum-v[i].s;
        while(st<=dr)
        {
            int mij=(dr-st)/2+st;
            if(v[mij].s==ss)
            {
                g<<v[mij].a<<' '<<v[mij].b<<' '<<v[mij].c<<' '<<v[i].a<<' '<<v[i].b<<' '<<v[i].c;
                return 0;
            }
            if(v[mij].s<ss)
                dr=mij-1;
            else
                st=mij+1;
        }
    }
    g<<-1;

}