Cod sursa(job #1496905)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 5 octombrie 2015 19:30:18
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int v[2010];
int main(){
    freopen("nrtri.in","r",stdin);
    freopen("nrtri.out","w",stdout);
	int n,i,j,k,l1,l2,m,sol=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
        scanf("%d",&v[i]);
    sort(v+1,v+n+1);
    for(i=1;i<=n-2;i++)
        for(j=i+1;j<=n-1;j++){
            l1=j;
            l2=n;
            while(l1<=l2){
                m=(l1+l2)/2;
                if(v[m]<=v[i]+v[j])
                    l1=m+1;
                else
                    l2=m-1;
            }
            while(v[m]>v[i]+v[j])
                m--;
            sol=sol+m-j;
        }
    printf("%d",sol);
	return 0;
}