Pagini recente » Cod sursa (job #2690903) | Cod sursa (job #1905367) | Cod sursa (job #3146373) | Cod sursa (job #3001360) | Cod sursa (job #921600)
Cod sursa(job #921600)
#include <fstream>
#include <cstdlib>
using namespace std;
struct lot {int v; int poz;};
int fc(const void *a, const void *b)
{
return ((lot *)a)->v - ((lot *)b)->v;
}
int main()
{
ifstream fi("loto.in"); ofstream fo("loto.out");
int a[101],i,n,j,k,ind,S;
lot t[100001];
fi>>n>>S;
for(i=0;i<n;i++) fi>>a[i];
for(i=0,ind=0;i<n;i++) for(j=0;j<n;j++) for(k=0;k<n;k++)
{
t[ind].v=a[i]+a[j]+a[k]; t[ind++].poz=i+j*100+k*10000;
}
qsort(t,n*n*n,sizeof(lot),fc);
for(i=1,ind=0;i<n*n*n;i++)
if(t[i].v!=t[ind].v) t[++ind]=t[i];
i=0;j=ind;k=0;
while(i<=j)
{
if(t[i].v+t[j].v==S) {k=1; break;}
if(t[i].v+t[j].v<S) i++; else j--;
}
if(k==0) fo<<-1<<"\n";
else
{
fo<<a[t[i].poz/10000]<<" "<<a[(t[i].poz/100)%100]<<" "<<a[t[i].poz%100]<<" ";
fo<<a[t[j].poz/10000]<<" "<<a[(t[j].poz/100)%100]<<" "<<a[t[j].poz%100]<<"\n";
}
return 0;
}