Cod sursa(job #689061)

Utilizator gigiibirjoBirjovanu Georgiana gigiibirjo Data 24 februarie 2012 09:04:21
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<fstream>
#include<algorithm>
using namespace std;
long v[3001];
int main ()
{
	long n,i,nr,p,q,ok,s,m,j;
	ifstream fin("nrtri.in");
	ofstream fout("nrtri.out");
	fin>>n;
	nr=0;
	for(i=1; i<=n; i++)
		fin>>v[i];
	sort(v+1, v+n+1);
	for(i=1; i<=n-1; i++)
		for(j=i+1; j<=n; j++)
		{
			ok=0;
			p=1; q=n;
			s=v[i]+v[j];
			while(p<=q && ok==0)
			{
				m=(p+q)/2;
				if(v[m]==s) 
				{
					ok=1;
					nr++;
				}
				else if (v[m]<s) p=m+1;
					else q=m-1;
			}
		}
	fout<<nr;
	fin.close();
	fout.close();
	return 0;
}