Cod sursa(job #477049)

Utilizator andrey932Andrei andrey932 Data 13 august 2010 11:10:00
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define MAXN 802
#define LMAX 30002

ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int x[MAXN],d[LMAX],n,i,j,k,tot,ms,md;

int main()
{
	fin>>n;
	for(i=1;i<=n;i++) fin>>x[i];
	sort(&x[1],&x[n]);
	j=1;
	d[0]=0;
	for(i=1;i<LMAX;i++) {
		d[i]=d[i-1];
		while (i==x[j]) {
			j++;
			d[i]++;
		}
	}
	for(i=1;i<n;i++) {
		for(j=i+1;j<=n;j++) {
			cout<<i<<" "<<j<<"   "<<"d["<<i+j<<"]="<<d[i+j]<<"-"<<"d["<<abs(i-j)+1<<"]="<<d[abs(i-j)+1]<<"\n";
			ms=i+j; md=abs(i-j)-1;
			tot+=d[ms]-d[md];			
			if (md<=i) tot--;
			if (md<=j) tot--;
		}
	}
	fout<<tot<<"\n";
	fout.close();	
	return 0;
}