Cod sursa(job #60457)

Utilizator FlorianFlorian Marcu Florian Data 14 mai 2007 18:04:23
Problema Medie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#include<string.h>
int main()
{
long ok,u[1000],s,m,v[10000],i,j,k,sol=0,n,aux,p;
FILE*f=fopen("medie.in","r");
FILE*g=fopen("medie.out","w");
fscanf(f,"%ld",&n);
memset(u,0,sizeof(u));
for(i=1;i<=n;++i) {fscanf(f,"%ld",&v[i]); u[v[i]]++;}
do
	{
	ok=1;
	for(i=1;i<n;++i) if (v[i]>v[i+1]) {aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; ok=0;}
	}
while(ok==0);
for(k=1;k<n;++k)
	{
	s=2*v[k];
	for(p=1;p<=k;++p)
		{
		i=k+1; j=n;
		while(i<=j)
			{
			m=(i+j)/2;
			if (v[m]+v[p]==s)
				{
				sol+=u[v[m]];
				if (v[m]==v[p]) sol--;
				if (v[m]==v[k]) sol--;
				break;
				}
			else if (v[m]+v[p]<s) i=m+1;
			else j=m-1;
			}
		}
	}
fprintf(g,"%ld",sol);
return 0;}