Cod sursa(job #315227)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 14 mai 2009 20:22:05
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream.h>
#define endl '\n'

void qs(int v[],int st, int dr)
{
int i=st,j=dr;
int aux;
int piv=v[(st+dr)/2];
while(i<=j)
  {
  while(v[i]<piv)
    i++;
  while(v[j]>piv)
    j--;
  if(i<=j)
    {
    aux=v[i];
    v[i]=v[j];
    v[j]=aux;
    i++;
    j--;
    }
  }
  if(st<j)
    qs(v,st,j);
  if(i<dr)
    qs(v,i,dr);
}


int main()
{
int n,v[801]={0},i,j1,j2,j3,c=0;
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
  scanf("%d",&v[i]);
qs(v,1,n);
for(j1=1;j1<=n-1;j1++)
  for(j2=j1+1;j2<=n;j2++)
    for(j3=j2+1;j3<=n;j3++)
      if(v[j1]+v[j2]>=v[j3])
	c++;
      else break;
printf("%d",c);
return 0;
}