Cod sursa(job #460320)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 1 iunie 2010 21:33:31
Problema Medie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;

vector <int> v;
int n, i, j, k;
float medie;
int nr;

float cauta (float x)
{
	int st, dr, mijl;
	st = 0;
	dr = n - 1;
	do
	{
		mijl = (st + dr) / 2;
		if (v[mijl] == x)
			return 1;
		else if (x < v[mijl])
			dr = mijl - 1;
		else if (x > v[mijl])
			st = mijl + 1;
	}
	while (st <= dr);
	
	return 0;
}

int main ()
{
	FILE *f = fopen ("medie.in","r");
	FILE *g = fopen ("medie.out","w");
	fscanf (f,"%d", &n);
	
	for (i=1; i<=n; ++i)
	{
		fscanf (f,"%d", &j);
		v.push_back (j);
	}
	
	sort (v.begin(), v.end() );
	
	for (i=0; i<n; ++i)
	{
		for (j=0; j<n; ++j)
			if (i != j)
			{
				medie = (float) (v[i] + v[j]) / 2;
				if (cauta(medie))
					nr ++;
			}
	}
	
	fprintf (g,"%d ", nr/2);
	
	fclose(g);
	fclose(f);
	return 0;
}