Pagini recente » Cod sursa (job #1479474) | Cod sursa (job #3329006) | Cod sursa (job #1808951) | Cod sursa (job #571872) | Cod sursa (job #2063589)
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n, v[850], nr;
void citire ()
{
int i;
f>>n;
for(i=1;i<=n;++i) f>>v[i];
f.close();
}
int compara (const void *a, const void *b)
{
if(*(int *)a<*(int *)b) return -1;
if(*(int *)a==*(int *)b) return 0;
return 1;
}
void cautabin(int x, int j)
{
int li=j, ls=n ,mid, ok=0;
while (li<=ls)
{
mid=li+(ls-li)/2;
if(v[mid]<=x) {ok=1; break;}
else ls=mid-1;
}
if(ok)
{
int m=mid;
while(v[m]<=x && m>j) m--, nr++;
mid++;
while(v[mid]<=x && mid<=n) mid++, nr++;
}
}
int main()
{
citire();
qsort(v, n, sizeof(int), compara);
int i, j;
for(i=1;i<n;++i)
for(j=i+1;j<=n;++j)
cautabin (v[i]+v[j], j);
g<<nr;
g.close();
}