Cod sursa(job #886570)

Utilizator lily3Moldovan Liliana lily3 Data 22 februarie 2013 23:50:49
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
#include<algorithm>
using namespace std;

int i,j,n,m,a[1001],k,nr=0;
bool cmp(int a,int b)
{
    return a<b;
}
int cauta(int i,int j)
{
    int mij,st=j+1,dr=n,val;
    val=a[i]+a[j];
    mij=(st+dr)/2;
    while(st<=dr)
    {
        if(val>=a[mij]&&a[mij+1]>val)
        return 1;
        else
        if(val>=a[mij])
        st=mij+1,mij=(st+dr)/2;
        else
        dr=mij-1,mij=(st+dr)/2;
    }
    return 0;
}
int main()
{
    ifstream f("nrtri.in");
    ofstream g("nrtri.out");
    f>>n;
    for(i=1;i<=n;++i)
    f>>a[i];
    sort(a+1,a+n+1,cmp);
    a[n+1]=10000000;
    int p;
    for(i=1;i<=n-2;++i)
    for(j=i+1;j<n;++j)
        if(cauta(i,j))
        ++nr;
    g<<nr<<"\n";
    return 0;
}