Pagini recente » Cod sursa (job #1521010) | Cod sursa (job #402981) | Cod sursa (job #2383921) | Cod sursa (job #938916) | Cod sursa (job #1257696)
#include <fstream>
#include <algorithm>
#define Ve 103
#define Ve2 1000003
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct asd
{
int s,n1,n2,n3;
}v[Ve2];
int a[Ve],n,s,k,i,j,r,s1;
int caut(asd b[Ve2],int x,int left, int right)
{ int mij;
while(left <= right){
mij = (left + right)/2;
if(b[mij].s == x)
return mij;
else
if(b[mij].s < x)
left = mij +1;
else
if(b[mij].s > x)
right = mij - 1;
}
return 0;
}
int cmp( const asd &z, const asd &m){
if(z.s < m.s)
return 1;
return 0;
}
int main()
{
f >> n >> s1;
for(i = 1; i <= n; i++)
f >> a[i];
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
for(k = 1; k <= n; k++){
v[++r].s = a[i] + a[j] + a[k];
v[r].n1 = a[i];
v[r].n2 = a[j];
v[r].n3 = a[k];
}
sort(v + 1,v + r + 1,cmp);
int ok = 0;
for(i = 1; i <= r; i ++){
if(caut(v,s1-v[i].s,1,r)!=0){
g << v[i].n1 <<" ";
g << v[i].n2 <<" ";
g << v[i].n3 <<" ";
g << v[caut(v,s1-v[i].s,1,r)].n1<<" ";
g << v[caut(v,s1-v[i].s,1,r)].n2<<" ";
g << v[caut(v,s1-v[i].s,1,r)].n3;
ok = 1;
return 0;
}
}
if(ok == 0) g<<-1;
return 0;
}