Pagini recente » Cod sursa (job #1297057) | Cod sursa (job #482934) | Cod sursa (job #447591) | Cod sursa (job #366327) | Cod sursa (job #882336)
Cod sursa(job #882336)
// loto.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
#include "fstream"
#include "algorithm"
using namespace std;
int ok=1;
struct suma
{
int va,e1,e2,e3;
}s[1000005];
ifstream f("loto.in");
ofstream g("loto.out");
int cautare_binara(int nr,int suma,int p)
{
int pr=0,u=nr-1,m;
if(s[u].va<suma)
return 0;
while(pr<=u)
{
m=(pr+u)/2;
if(s[m].va==suma)
return m;
if(s[m].va<suma)
pr=m+1;
else
u=m-1;
}
return 0;
}
int cmp(suma p1,suma p2)
{
return p1.va<p2.va;
}
int main()
{
int nr,suma,sir[105],sume;
f>>nr>>suma;
int i;
for(i=0;i<nr;i++)
f>>sir[i];
int j,k,nrs=0;
for(j=0;j<nr;j++)
for(k=j;k<nr;k++)
for(i=k;i<nr;i++)
{
s[nrs].e1=sir[j];
s[nrs].e2=sir[k];
s[nrs].e3=sir[i];
s[nrs].va=sir[j]+sir[k]+sir[i];
nrs++;
}
sort(s,s+nrs,cmp);
for(i=0;i<nrs;i++)
{
int rez;
rez=cautare_binara(nrs,suma-s[i].va,i);
if(rez!=0)
{
g<<s[i].e1<<" "<<s[i].e2<<" "<<s[i].e3<<" "<<s[rez].e1<<" "<<s[rez].e2<<" "<<s[rez].e3;
break;
return 0;
}
}
g<<"-1";
return 0;
}