Pagini recente » Cod sursa (job #1346554) | Cod sursa (job #370843) | Cod sursa (job #2171591) | Cod sursa (job #1126774) | Cod sursa (job #325852)
Cod sursa(job #325852)
#include<stdio.h>
using namespace std;
#define dim 801
int v[dim],a[6],w[dim];
//unsigned long v[dim],w[dim];//a[dim],b[dim];
void merge_sort(int li, int ls)
{
int j,i,k,jum,m=0;
if(li==ls) return;
jum=(li+ls)/2;
merge_sort(li,jum);
merge_sort(jum+1,ls);
i=li;j=jum+1;k=li;
while((i<=jum)||(j<=ls))
{
if(j>ls || ( (i<=jum) && (v[i] < v[j])) )
{
w[k] = v[i]; m++;//b[k]=a[i];
k++;
i++;
}
else
{
w[k] = v[j]; m++;//b[k]=a[j];
k++;
j++;
}
}
for(i = ls; i >= li; i--)
{
v[i] = w[i]; //a[i]=b[i];
}
}
int main()
{
FILE *f=fopen("nrtri.in","r"), *g=fopen("nrtri.out","w");
int i,j,k,n,tri=0,ok;
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
merge_sort(1,n);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
if(i!=j)
for(k=j;k<=n;k++)
if((j!=k)&&(i!=k))
{
a[1]=v[i]; a[2]=v[j]; a[3]=v[k];
//ok=1;
if( ( a[1] > a[2] +a[3 ] ) || ( a[2] > a[1] +a[3 ]) || ( a[3] > a[2] +a[1] ))
//ok=0;
break;
//if(ok==1)
tri++;
}
fprintf(g,"%d\n",tri);
return 0;
}