Cod sursa(job #1625545)

Utilizator tanasaradutanasaradu tanasaradu Data 2 martie 2016 19:37:12
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int a[805],n;
void Citire()
{
    int i;
    fin>>n;
    for(i=1;i<=n;i++)
    fin>>a[i];
    sort(a+1,a+n+1);

    fin.close();
}
int CautBin(int st,int dr,int x)
{
    int m,poz;
    poz=-1;
    while(st<=dr)
    {
        m=(st+dr)/2;
        if(a[m]<=x)
            {
                poz=m;
                st=m+1;
            }
        else dr=m-1;
    }
    if(poz!=-1)return 1;
    return 0;
}
void Rezolvare()
{
    int i,j,cnt,p;
    cnt=0;
    for(i=1;i<=n-2;i++)
      for(j=i+1;j<=n-1;j++)
      {
          p=CautBin(j+1,n,a[i]+a[j]);
          cnt+=p;
      }
      fout<<cnt<<"\n";

}
int main()
{
    Citire();
    Rezolvare();
    return 0;
}