Pagini recente » Cod sursa (job #655218) | Cod sursa (job #163482) | Cod sursa (job #1836203) | Cod sursa (job #2370378) | Cod sursa (job #769468)
Cod sursa(job #769468)
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#define MAX 1000001
using namespace std;
typedef struct _sume{
int a,b,c,suma;
} sume;
int N, S, vec[105];
sume s[MAX];
bool comp( sume s1, sume s2 ){
if( s1.suma > s2.suma ) return true;
else return false;
}
int main () {
FILE *f1, *f2;
f1 = fopen("loto.in", "r" );
f2 = fopen("loto.out", "w" );
int t = 0;
fscanf(f1,"%d%d", &N, &S );
for( int i = 0 ; i < N ; i++ )
fscanf(f1,"%d", &vec[i]);
for( int i = 0 ; i < N; i++ )
for( int j = i; j < N; j++ )
for( int k = j; k < N; k++ ){
s[t].suma = vec[i] + vec[j] + vec[k];
s[t].a = vec[i];
s[t].b = vec[j];
s[t].c = vec[k];
t++;
}
sort( s, s + t, comp);
int left = 0, right = t - 1;
while( ( s[left].suma+s[right].suma != S ) && ( left <= right ) ){
if( s[left].suma + s[right].suma < S ) right--;
else left++;
}
if ( left <= right ) fprintf( f2, "%d %d %d %d %d %d\n",s[left].a,s[left].b,s[left].c,s[right].a,s[right].b,s[right].c);
else fprintf(f2,"-1\n");
fclose(f1);
fclose(f2);
return 0;
}