Cod sursa(job #87832)

Utilizator IeewIordache Bogdan Ieew Data 29 septembrie 2007 12:47:43
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream.h>
#define InFile "nrtri.in"
#define OutFile "nrtri.out"
int a[801],n,i,j,k;
long t=0,s;
ifstream in(InFile);

void poz(int li,int ls,int& k,int a[100])
{
int i=li,j=ls,c,i1=0,j1=-1;
while(i<j)
	{
	if(a[i]>a[j]){c=a[j];a[j]=a[i];a[i]=c;c=i1;i1=-j1;j1=-c;}
	i=i+i1;
	j=j+j1;
	}
k=i;
}

void quick(int li,int ls)
{
	if(li<ls){
	poz(li,ls,k,a);
	quick(li,k-1);
	quick(k+1,ls);
	}
}

int main()
{
in>>n;
for(i=1;i<=n;i++)in>>a[i];
in.close();
quick(1,n);
for(i=1;i<n-1;i++)
for(j=i+1;j<n;j++)
{s=a[i]+a[j];
for(k=j+1;k<=n;k++)if(s>=a[k])t++;
			else break;}
ofstream out(OutFile);
out<<t<<'\n';
out.close();
return 0;
}