Cod sursa(job #1506378)

Utilizator Julian.FMI Caluian Iulian Julian. Data 20 octombrie 2015 16:08:03
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int v[1000];

void sortare(int st,int dr)
{int i,j,x=v[st];
i=st;j=dr;
while(i<j)
{while(i<j && x<=v[j])j--; v[i]=v[j];
 while(i<j && x>=v[i])i++; v[j]=v[i];}
v[i]=x;
if(i+1<dr)sortare(i+1,dr);
if(st<i-1)sortare(st,i-1);
}


int main()
{int n,i,j,ls,m,ld;
    fin>>n; for(i=1;i<=n;i++) fin>>v[i];
    sortare(1,n);

long val,nr=0;
    for(i=1;i<=n-2;i++)
        for(j=i+1;j<=n-1;j++)
    {
    ls=j+1;ld=n;
    val=v[i]+v[j];

     while(ls<=ld)
        {m=(ls+ld)/2;
            if(v[m]<=val)ls=m+1;
            else ld=m-1;
        }
        nr+=(ld-j);
    }
   fout<<nr;
}