Pagini recente » Cod sursa (job #1351336) | Cod sursa (job #1262136) | Cod sursa (job #1557898) | Cod sursa (job #332335) | Cod sursa (job #610012)
Cod sursa(job #610012)
#include<iostream>
#include<fstream>
int a[1000];
using namespace std;
int functie(const void *a, const void *b)
{
return *(int*)a - *(int*)b;
}
int main(void)
{
int n,i,j;
fstream f,g;
f.open("nrtri.in",ios::in);
g.open("nrtri.out",ios::out);
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
//sort(a+1,a+n+1);
int nrsol=0;
qsort(a+1,n,sizeof(int),functie);
for (i=1;i<=n-2;i++)
for (j=i+1;j<=n-1;j++)
{
int st=j+1,dr=n,mij;
while (st<=dr)
{
mij=(st+dr)/2;
if(a[i]+a[j]>=a[mij])
{
if (a[i]+a[mij]>=a[j])
{
if (a[j]+a[mij]>=a[i])
{
nrsol++;break;
}
}
else
{st=mij+1;}
}
else
{dr=mij-1;}
}
}
g<<nrsol;
}