Pagini recente » Istoria paginii utilizator/irina1608 | Cod sursa (job #202452) | Cod sursa (job #2041856) | Cod sursa (job #206840) | Cod sursa (job #496787)
Cod sursa(job #496787)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE*f=fopen("loto.in","r");
FILE*g=fopen("loto.out","w");
int N,S,i,j,k,pozz,pozzz,p,u,nrs,A[101];
struct suma_3{
int poz1;
int poz2;
int poz3;
int sum;
} W[1000100];
int cmp(suma_3 a,suma_3 b){
return a.sum < b.sum;
}
void cautbin () {
p = 1 ; u = nrs;
while ( p <= u ){
int aux = W[p].sum + W[u].sum;
if ( S == aux ){
pozz = p;
pozzz = u;
break;
}
if ( aux > S ) --u;
else ++p;
}
}
void vector() {
for ( i = 1 ; i <= N ; ++i ){
for ( j = i ; j <= N; ++j ){
for ( k = j ; k <= N ; ++k ){
++nrs;
W[nrs].poz1 = i;
W[nrs].poz2 = j;
W[nrs].poz3 = k;
W[nrs].sum = A[i] + A[j] + A[k];
}
}
}
}
int main () {
fscanf(f,"%d %d",&N,&S);
for ( i = 1 ; i <= N ; ++i )
fscanf(f,"%d",&A[i]);
vector();
sort(W+1,W+nrs+1,cmp);
cautbin();
if ( pozz == 0 ) fprintf(g,"-1\n");
else{
fprintf(g,"%d %d %d ",A[W[pozz].poz1],A[W[pozz].poz2],A[W[pozz].poz3]);
fprintf(g,"%d %d %d ",A[W[pozzz].poz1],A[W[pozzz].poz2],A[W[pozzz].poz3]);
}
fclose(f);
fclose(g);
return 0;
}