Pagini recente » Cod sursa (job #2585676) | Cod sursa (job #2738799) | Cod sursa (job #2769863) | Cod sursa (job #1902760) | Cod sursa (job #1483413)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n,v[801],i,s=0,c=0,j,mn,mx,nr;
void QUICKSORT(int inf,int sup)
{
int x,i,j,t;
i=inf;
j=sup;
x=v[(i+j)/2];
do{
while ((i<sup)&&(v[i]<x)) i++;
while ((j>inf)&&(v[j]>x)) j--;
if (i<=j)
{
t=v[i];
v[i]=v[j];
v[j]=t;
i++;
j--;
}
}while (i<=j);
if (inf<j) QUICKSORT(inf,j);
if (i<sup) QUICKSORT(i,sup);
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
QUICKSORT(1,n);
nr=0;
for(i=1;i<=n-2;++i)
for(j=i+1;j<=n-1;++j)
{
int k=j+1;
while(v[i]+v[j]>=v[k] && k<=n)
++k;
nr+=k-j-1;
}
g<<nr;
/*if(v[1]<v[2])
mn=v[1],mx=v[2];
else
mn=v[2],mx=v[1];
s=s+v[1]+v[2];
for(i=3;i<=n;i++)
if(v[i]+mn>=mx&&mn+mx>=v[i])
c++,cout<<i<<" "<<v[i]<<mn;
for(i=2;i<n;i++)
{
if(v[i]<v[i+1])
mn=v[i],mx=v[i+1];
else
mn=v[i+1],mx=v[i];
s=v[i]+v[i+1];
for(j=i+2;j<=n;j++)
if(v[j]+mn>=mx&&mn+mx>=v[j])
c++;
}*/
// g<<c;
}