Cod sursa(job #2741941)

Utilizator andreea.ioanaSora Andreea-Ioana andreea.ioana Data 19 aprilie 2021 19:49:25
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
int n,S,v[101],st,dr,mij,i,j,k,t=0,a;
struct info
{
    int suma;
    int m;
    int n;
    int p;
};
info I[10000001];
bool cmp(info x, info y)
{
    return x.suma<y.suma;
}
int main ()
{
    ifstream f("loto.in");
    ofstream g("loto.out");
    f>>n>>S;
    for(i=0;i<n;i++)
        f>>v[i];
    for(i=0;i<n;i++)
        for(j=i;j<n;j++)
            for(k=j;k<n;k++)
             {
                I[t].suma=v[i]+v[j]+v[k];
                I[t].m=v[i];
                I[t].n=v[j];
                I[t].p=v[k];
                t++;
             }
    sort(I,I+t,cmp);
    i=0;
    while(i<t)
    {
        a=S-I[i].suma;
        st=0;
        dr=t-1;
        while(st<=dr)
        {
           mij=(st+dr)/2;
           if(I[mij].suma==a)
           {
              g<<I[i].m<<" "<<I[i].n<<" "<<I[i].p<<" "<<I[mij].m<<" "<<I[mij].n<<" "<<I[mij].p;
              return 0;
           }
           if(I[mij].suma>a)
              dr=mij-1;
           else
              st=mij+1;
        }
        i++;
    }
    g<<-1;
    f.close();
    g.close();
    return 0;
}