Cod sursa(job #371402)

Utilizator elmercerAlex Mercer elmercer Data 5 decembrie 2009 10:44:00
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>

using namespace std;

long n, a[100010], i, v[16], maxim;

int cmp(const void *w, const void *z) {
	return *(int *)w - *(int *)z;
}

int main() {
	freopen("prod3.in", "r", stdin);
	freopen("prod3.out", "w", stdout);
	scanf("%ld", &n);
	for (i = 1; i <= n; ++i) {
		scanf("%ld", &a[i]);
	}
	sort(a + 1, a + 1 + n);
	//for (i = 1; i <= n; ++i) printf("%ld ", a[i]);
	maxim = a[n] * a[n - 1] * a[n - 2];
	v[1] = n - 2; v[2] = n - 1; v[3] = n;
	if (a[1] * a[2] >= 0) {
		if (maxim < a[1] * a[2] * a[n]) {
			maxim = a[1] * a[2] * a[n];
			v[1] = 1; v[2] = 2; v[3] = n;
		}
	}
	for (i = 1; i <= 3; ++i) {
		printf("%ld ", a[v[i]]);
	}
	printf("\n");
	return 0;
}