Cod sursa(job #999789)

Utilizator Darius15Darius Pop Darius15 Data 21 septembrie 2013 14:14:40
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int poz,a[802],n,i,sol,j,ok,mij,st,dr,s;
int cb(int x)
{
   dr=1,st=n;
   while (dr<st )
   {  mij=(dr+st)/2;
       if (x>=a[mij]) dr=mij+1;
       else st=mij-1;
   }
   if (x>=a[st]) return st+1;
   return st;
}
int main()
{
    f>>n;
    for (i=1;i<=n;i++)
        f>>a[i];
    sort(a+1,a+n+1);
    for (i=1;i<=n-2;i++)
        for (j=i+1;j<=n-1;j++)
       {
           s=a[i]+a[j];
           sol+=cb(s)-j-1;
       }
       g<<sol;
    return 0;
}