Pagini recente » Istoria paginii utilizator/lawrenciu317 | Cod sursa (job #1539864) | Cod sursa (job #2130554) | Statistici Fulger Andrei-Iulian (Andreiul2312) | Cod sursa (job #2380464)
#include <fstream>
#include <cassert>
using namespace std;
ifstream cin ("nrtri.in");
ofstream cout ("nrtri.out");
/*int Triangle (int a, int b, int c)
{
return ((a+b>=c) && (b+c>=a) && (a+c>=b));
} */
void Swap(int &a, int &b)
{
int temp;
temp = b;
b=a;
a = temp;
}
void BubbleSort (int *v, int n) // v[]
{
int i, j;
for (i=1; i<=n; i++)
{
for (j=1; j<n; j++)
{
if (v[j]>v[j+1])
{
Swap (v[j],v[j+1]);
}
}
}
}
int main()
{
int N, V[803], contor=0;
cin>> N;
for(int i=1; i<=N; i++)
cin>> V[i];
BubbleSort(V,N);
//for (int i=1; i<N; ++i)
// cout<<V[i]<<" ";
for (int i=1; i<=N; i++)
{
for (int j=i+1; j<=N;j++)
{
// for (int k=j+1; k<=N; k++)
// if (Triangle (V[i], V[j], V[k]) !=0 )
// {
// contor ++;
// cout<<V[i]<<" "<<V[j]<<" "<<V[k]<<"\n";
// } else break;
int stanga=j;
int dreapta=N;
int k;
while (stanga<=dreapta)
{
int mijloc = (stanga + dreapta)/2;
if (V[i]+V[j]>=V[mijloc])
{
stanga=mijloc+1;
k=mijloc;
}
else
{
dreapta=mijloc-1;
}
}
contor+=k-j;
}
}
cout<<contor;
return 0;
}