Cod sursa(job #585945)

Utilizator maritimCristian Lambru maritim Data 30 aprilie 2011 12:49:50
Problema Fabrica Scor 0
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 5-9 Marime 0.7 kb
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;

#define INF 1000000

int A[50001];
int B[50001];
int N;
int a;
int b;
int nr;
int MAX = -INF;

void solve(void)
{
	int b = 0;
	B[1] = N;
	for(int k=1;k<a;k++)
		for(int i=1;i<a-k+1;i++)
		{
			b = (A[i+1]*(B[i]-B[i+1]))/(A[i+1]*2+A[i]);
			B[i+1] += b;
			B[i] -= b;
		}
	for(int i=1;i<=a;i++)
		if(MAX<A[i]*B[i])
			MAX = A[i]*B[i];
}

int main()
{
	FILE *f = fopen("fabrica.in","r");
	FILE *g = fopen("fabrica.out","w");
	
	fscanf(f,"%d %d %d",&N,&a,&b);
	for(int i=1;i<=a;i++)
		fscanf(f,"%d",&A[i]);
	sort(A+1,A+a+1);
	solve();
	fprintf(g,"%d",MAX);
	
	fclose(g);
	fclose(f);
	return 0;
}