Cod sursa(job #521121)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 11 ianuarie 2011 12:49:20
Problema Grupuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
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 register s;
	for(int register i=1;i<=u;i++){
		s+=(a<v[i]?a:v[i]);
	}
	if(s>=a*k)
		return true;
	return false;
}

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