Cod sursa(job #1089235)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 21 ianuarie 2014 16:33:55
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct elem{
    int val;
    int p1,p2,p3;
}v[1000001];
int cmp(elem x,elem y){
    return x.val<y.val;
    }
int nr,n,s,a[101],i,j,k,p,u,ok,mij;
int main()
{f>>n>>s;
for(i=1;i<=n;i++){
    f>>a[i];}
    nr=0;
    for(i=1;i<=n;i++)
        for(j=i;j<=n;j++)
            for(k=j;k<=n;k++){
                nr++;
                v[nr].val=a[i]+a[j]+a[k];
                v[nr].p1=i;
                v[nr].p2=j;
                v[nr].p3=k;
                }
sort(v+1,v+nr+1,cmp);
ok=1;
for(i=1;i<=nr&&ok==1;i++){
    k=s-v[i].val;
    p=1;u=nr;
    while(p<=u){
        mij=(p+u)/2;
        if(k>v[mij].val)
            p=mij+1;
        else
            if(k<v[mij].val)
                u=mij-1;
             else
               {
                   ok=0;

                   g<<a[v[i].p1]<<" "<<a[v[i].p2]<<" "<<a[v[i].p3]<<" "<<a[v[mij].p1]<<" "<<a[v[mij].p2]<<" "<<a[v[mij].p3];
                    break;
               }
               }
    }

if(ok==1)
    g<<-1;
    return 0;
}