Cod sursa(job #1343809)

Utilizator StefanMudragMudrag Stefan StefanMudrag Data 15 februarie 2015 22:24:22
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#define NMAX 101
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,v[NMAX],s;
struct loto{int s,a,b,c;};
loto suma[171720];
int nr;
int cmp(loto x,loto y)
   {
       return x.s<y.s;}
void read()
{
    fin>>n>>s;
    for(int i=1;i<=n;i++)
        fin>>v[i];
}
void build()
{
    for(int i=1;i<=n;i++)
        for(int k=i;k<=n;k++)
        for(int j=k;j<=n;j++)
    {
        nr++;
        suma[nr].s=v[i]+v[k]+v[j];
        suma[nr].a=v[i];
        suma[nr].b=v[k];
        suma[nr].c=v[j];
    }

}
void solve()
{
    int st=1,dr=nr;
    while(st<=dr)
    {
        if(suma[st].s+suma[dr].s<s)
            st++;
        else
            if(suma[st].s+suma[dr].s>s)
            dr--;
        else break;
    }
    if(st>dr)
        cout<<"-1";
    else
        fout<<suma[st].a<<" "<<suma[st].b<<" "<<suma[st].c<<" "<<suma[dr].a<<" "<<suma[dr].b<<" "<<suma[dr].c<<" ";

}
int main()
{

   read();
   build();
   sort(suma+1,suma+n+1,cmp);
solve();
   return 0;

}