Cod sursa(job #521124)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 11 ianuarie 2011 13:04:37
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f=fopen("grupuri.in","r");
FILE *g=fopen("grupuri.out","w");

long long  n,k,v[100001],u=0,p=1;

bool ver(long long a){
	long long  s=0,x;
	for(int register i=1;i<=n;i++){
		x=min(a,v[i]);;
		s+=x;
	}
	if(s>=a*k){
		return true;
	}	
	return false;
}

int main(void){
	register long long i,m,j;
	
	fscanf(f,"%lld %lld",&k,&n);
	for(i=1;i<=n;i++){
		fscanf(f,"%lld",&v[i]);
		u+=v[i];
	}
	u/=k;
	
	long long  register sol=0;
	while(p<=u){
		m=p+(u-p)/2;
		if(ver(m)){
			sol=m;
			p=m+1;
		}
		else 
			u=m-1;
	}
	fprintf(g,"%lld",sol);
	return 0;
}