Cod sursa(job #462250)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 10 iunie 2010 09:22:59
Problema Grupuri Scor 74
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#define DIM 1<<17

int A[DIM];
int N, K, X;
int p, u, k;

int complt (){
	int k = 0;
	for (int i=1; i<=N; i++){
		if (A[i] <= X) k += A[i]; 
		else k += X;
		
		if (k >= K * X) return 1;
	}
	return 0;
	
}

int main (){
	
	freopen ("grupuri.in" ,"r", stdin);
	freopen ("grupuri.out" ,"w", stdout);
	
	scanf ("%d %d", &K, &N);
	for (int i=1; i<=N; ++i){
		scanf ("%d", &A[i]);
		k += A[i];
	}
	
	p = 1, u = k/K;
	while (p <= u){
		X = p + (u - p) / 2;
		
		if (complt ())
			p = X + 1;
		else
			u = X - 1;
	}
	
	printf ("%d", u);
	
	return 0;
}