Cod sursa(job #499973)

Utilizator KoniacDocea Andrei Koniac Data 11 noiembrie 2010 10:01:42
Problema Grupuri Scor 2
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>

FILE * f = fopen("grupuri.in","r");
FILE * g = fopen("grupuri.out","w");

int i,j,m,n,p,u,x,k;
int a[1000001];
int s;

int min(int a, int b){
	if(a<b)
		return a;
	else
		return b;
}

int main(){
	fscanf(f,"%d%d",&k,&n);
	for(i=1;i<=n;i++){
		fscanf(f,"%d",&a[i]);
		s+=a[i];
	}
	u=s;
	p=1;
	while(p<=u){
		x=(p+u)/2;
		s=0;
		for(i=1;i<=n;i++){
			s+=min(a[i],a[(p+u)/2]);
		}
		if(s<x*x){
			u=x-1;
		}
		else
			if(s>x*x){
				p=x+1;
			}
			else
				break;
	}
	
	
	
	fprintf(g,"%d",x);
	fclose(f);
	fclose(g);
	return 0;
}