Cod sursa(job #602901)

Utilizator ion824Ion Ureche ion824 Data 13 iulie 2011 17:51:42
Problema Loto Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <algorithm>
#define nmax 1000000

using namespace std;
typedef struct { int a,b,c,suma; } triplet;
triplet c[nmax];          
int a[101],n,s;

bool comparare(triplet a,triplet b)
{
   return a.suma>b.suma;  
}

int main(void){
    int i,j,k,nr;;
    ifstream fin("loto.in");
    ofstream fout("loto.out");
    fin>>n>>s; nr=0;
    for(i=1;i<=n;++i)fin>>a[i]; fin.close();
    for(i=1;i<=n;++i)
      for(j=i;j<=n;++j)
        for(k=j;k<=n;++k)
            c[++nr].suma=(c[nr].a=a[i])+(c[nr].b=a[j])+(c[nr].c=a[k]); 
    sort(c+1,c+nr+1,comparare);        
    i=1; j=nr;       
    while((c[i].suma+c[j].suma!=s) && (i<j))
                              if(c[i].suma+c[j].suma<s) --j;
                                 else ++i; 
    if (i<=j) fout<<c[i].a<<" "<<c[i].b<<" "<<c[i].c<<" "<<c[j].a<<" "<<c[j].b<<" "<<c[j].c<<" ";
       else fout<<"-1"; 
                                                  
    fout.close();
 return 0;   
}