Cod sursa(job #1294896)

Utilizator robx12lnLinca Robert robx12ln Data 18 decembrie 2014 14:09:34
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.58 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct str{
    int a;
    int b;
    int c;
    int s;
};
str s[1000002];
int v[1000002],d[10],n,L,i,j,k,sum,u,mid,st,dr;
int main(){
    fin>>n>>L;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    for(i=1;i<=n;i++){
        for(j=i;j<=n;j++){
            for(k=j;k<=n;k++){
                sum=v[i]+v[j]+v[k];
                u++;
                s[u].a=v[i];
                s[u].b=v[j];
                s[u].c=v[k];
                s[u].s=sum;
            }
        }
    }
    for(i=1;i<=n;i++){
        for(j=i;j<=n;j++){
            for(k=j;k<=n;k++){
                sum=v[i]+v[j]+v[k];
                sum=L-sum;
                st=1;
                dr=u;
                while(st<=dr){
                    mid=(st+dr)/2;
                    if(sum==s[mid].s){
                        d[1]=s[mid].a;
                        d[2]=s[mid].b;
                        d[3]=s[mid].c;
                        d[4]=v[i];
                        d[5]=v[j];
                        d[6]=v[k];
                        sort(d+1,d+7);
                        for(i=1;i<=6;i++){
                            fout<<d[i]<<" ";
                        }
                        return 0;
                    }
                    if(sum<s[mid].s){
                        dr=mid-1;
                    }else{
                        st=mid+1;
                    }
                }
            }
        }
    }
    fout<<"-1";
    return 0;
}