Cod sursa(job #543502)

Utilizator zeroblitz36FMI - Roscaneanu George zeroblitz36 Data 28 februarie 2011 09:49:02
Problema Numarare triunghiuri Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>
int v[800],n,i,j,k,q;
FILE *in,*out;
void quick(int v[],int left,int right)
{
	int i=left,j=right,p=v[(left+right)/2],man;
	while(i<=j)
	{
		while(v[i]>p)i++;
		while(v[j]<p)j--;
		if(i<=j){man=v[i];v[i]=v[j];v[j]=man;i++;j--;}
	}
	if(left<j)quick(v,left,j);
	if(i<right)quick(v,i,right);
}
int main()
{
	in=fopen("nrtri.in","r");
	fscanf(in,"%d",&n);
	for(i=0;i<n;i++)fscanf(in,"%d",&v[i]);
	fclose(in);
	quick(v,0,n-1);
	for(i=0;i<n-2;i++)
		for(j=i+1;j<n-1;j++)
			for(k=j+1;k<n&&v[k]>=v[i]-v[j]&&v[k]<=v[i]+v[j];k++) q++;
	out=fopen("nrtri.out","w");
	fprintf(out,"%d",q);
	fclose(out);
}