Cod sursa(job #1290067)

Utilizator YusukeFMI Mares Medar Razvan Yusuke Data 10 decembrie 2014 19:44:05
Problema Loto Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 1.09 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct suma { int s,a,b,c; } V[1000003];
int a[105],n,sum,nr,z=1,i,j,k,sumcaut,st=1,dr,mij;
int comparare(suma x, suma y)
{
    return(x.s<y.s);
}
int main()
{
    f>>n>>sum;
    for(i=1;i<=n;i++)
        f>>a[i];
    for(i=1;i<=n;i++)
        for(j=i; j<=n; j++)
            for(k=j; k<=n; k++){
                V[++nr].s=a[i]+a[j]+a[k];
                V[nr].a=a[i];
                V[nr].b=a[j];
                V[nr].c=a[k];
            }
    sort(V+1,V+1+nr,comparare);
    for(i=1;i<=nr&&z;i++){
        sumcaut=sum-V[i].s,st=1,dr=nr;
        while(st<=dr&&z){
            mij = (st+dr) / 2;
            if(V[mij].s<sumcaut)
                st=mij+1;
            else
                if(V[mij].s>sumcaut)
                    dr=mij-1;
                else{
                z=0;
                g<<V[i].a<<' '<< V[i].b <<' '<<V[i].c <<' ';
                g<<V[mij].a<<' '<< V[mij].b <<' '<< V[mij].c <<'\n';
            }
        }
    }
    if(z) g<<"-1\n";
}