Cod sursa(job #1404673)

Utilizator radu_cosmaRadu Cosma radu_cosma Data 28 martie 2015 14:06:06
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include<algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int main()
{
    int n,v[100002],i,s=0,mij,st,dr,sum,j,maxx,flag=0;
    in>>n;
    for(i=1;i<=n;i++)
        in>>v[i];
    sort(v+1,v+n+1);
    maxx=v[1];
    for(i=1;i<=n;i++)
        if(maxx<v[i]) maxx=v[i];
    for(i=1;i<=n-1;i++)
        for(j=i+1;j<=n-1;j++)
            {
                sum=v[i]+v[j];
                 st=j+1;
     dr=n;
     while(st<=dr&&flag==0)
        {mij=(st+dr)/2;
        if(sum<=v[mij]) /// se afla in partea de jos
                    dr=mij-1;
        if(sum>v[mij]) /// se afla in partea de sus
                    st=mij+1;
                    if(sum>maxx) {mij=n;}
                    if(mij==n) flag=1;
        }
        s+=mij-j-1;}
        out<<s;

    return 0;
}