Pagini recente » Cod sursa (job #754402) | Cod sursa (job #556395) | Cod sursa (job #465697) | Cod sursa (job #27632) | Cod sursa (job #1803251)
#include <iostream>
#include <algorithm>
using namespace std;
int x,y;
int v[100];
int sum[1000000];
void cauta(int contor, int s){
int li=1;
int ls=contor;
int sp=0;
int gata=0;
while(!gata && li<=ls){
sp=sum[li]+sum[ls];
if(sp<s)
li++;
else if(sp>s)
ls--;
else
gata=1;
}
x=sum[li];
y=sum[ls];
}
int main()
{
FILE *fin, *fout;
int n,s,i,j,k,contor,suma,p1,p2;
fin=fopen("loto.in","r");
fout=fopen("loto.out","w");
fscanf(fin,"%d %d",&n,&s);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
for(contor=0,i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
sum[contor++]=v[i]+v[j]+v[k];
sort(sum,sum+contor);
cauta(contor-1,s);
if(x+y!=s)
fprintf(fout,"-1\n");
else{
p1=p2=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++){
suma=v[i]+v[j]+v[k];
if(suma==x && p1==0){
fprintf(fout,"%d %d %d ",v[i],v[j],v[k]);
p1=1;
}
if(suma==y && p2==0){
fprintf(fout,"%d %d %d",v[i],v[j],v[k]);
p2=1;
}
}
}
fclose(fin);
fclose(fout);
return 0;
}