Cod sursa(job #1713083)

Utilizator Fanika123Tanasa Stefan Fanika123 Data 4 iunie 2016 17:24:40
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int n,a[805];
int CautBin(int st, int dr, int x)
{
    int mj,p;
    p=st-1;
    while(st<=dr)
    {
        mj=(st+dr)/2;
        if (a[mj]<=x)
        {
            p=mj;
            st=mj+1;
        }
        else dr=mj-1;
    }
    return p;
}
int main()
{
    int i,nrtri,j,s,p;
    fin>>n;
    for (i=1;i<=n;i++)
      fin>>a[i];
    sort(a+1,a+n+1);
    nrtri=0;
    for (i=1;i<=n-2;i++)
     for (j=i+1;j<=n-1;j++)
      {
         s=a[i]+a[j];
         p=CautBin(j+1,n,s);
         nrtri+=(p-j);
      }
    fout<<nrtri<<"\n";
    fin.close();
    fout.close();
    return 0;
}