Cod sursa(job #415413)

Utilizator marian77ivan marian liviu marian77 Data 11 martie 2010 12:08:34
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>
int n,v[801],x,i,j,st,dr,t,nr,p;
int main() {
	FILE *f=fopen("nrtri.in","r");
	FILE *g=fopen("nrtri.out","w");
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
	for(i=1;i<=n;i++)
		for(j=i+1;j<=n;j++)
			if(v[i]>v[j]) {
				t=v[i];
				v[i]=v[j];
				v[j]=t;
			}
	for(i=1;i<=n;i++)
		for(j=i+1;j<=n;j++) {
			st=j+1;
			dr=n;p=0;
			while(st<=dr){
			  x=(st+dr)/2;
			if(v[x]<=v[i]+v[j]) {
				p=x;
				st=x+1;
			}
			else
				dr=x-1;
		}
			if(p!=0)
				  nr=nr+p-j;
		}
	fprintf(g,"%d",nr);
	return 0;
}