Pagini recente » Cod sursa (job #3221493) | Cod sursa (job #2250243) | Cod sursa (job #194118) | Cod sursa (job #513203) | Cod sursa (job #675389)
Cod sursa(job #675389)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
struct date {
int s,x,y,z;
};
date a[1000001];
int v[101],n;
inline bool cmp(const date a, const date b)
{
return a.s<b.s;
}
date cauta(int x)
{
int p,q,mij;
date nr;
p=1;
q=n*n*n;
while(p<=q) {
mij=(p+q)/2;
if(a[mij].s<x)
p=mij+1;
else if(a[mij].s>x)
q=mij-1;
else
return a[mij];
}
nr.s=-1;
return nr;
}
int main ()
{
int i,j,k,sum,c,l;
date nr;
ifstream f("loto.in");
ofstream g("loto.out");
f>>n>>sum;
for(i=1;i<=n;i++)
f>>v[i];
f.close();
l=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++) {
l++;
a[l].s=v[i]+v[j]+v[k];
a[l].x=v[i];
a[l].y=v[j];
a[l].z=v[k];
}
sort(a+1,a+l+1,cmp);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++) {
c=sum-(v[i]+v[j]+v[k]);
if(c>=0)
nr=cauta(c);
else nr.s=-1;
if(nr.s!=-1){
g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<nr.x<<" "<<nr.y<<" "<<nr.z;
g.close();
return 0;
}
}
g<<"-1";
g.close();
return 0;
}