Cod sursa(job #1743153)

Utilizator Dan_RadulescuRadulescu Dan Dan_Radulescu Data 17 august 2016 17:40:35
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *f1=fopen("nrtri.in","r");
FILE *f2=fopen("nrtri.out","w");
int n,v[1001],i,j,s,nrsol=0,ind;
int cautB(int val,int st){
    int mij,l=st+1,h=n,poz=-1;
    while(l<=h){
        mij=(l+h)/2;
        if (v[mij]<=val){
            poz=mij;
            l=mij+1;
        }
          else
            h=mij-1;
    }
    if (poz!=-1) return poz-st;
    return 0;
}
int main(){
   fscanf(f1,"%d",&n);
   for (i=1;i<=n;i++){
    fscanf(f1,"%d",&v[i]);
   }
   sort(v+1,v+n+1);
   fclose(f1);
   for (i=1;i<=n-2;i++)
     for (j=i+1;j<=n-1;j++)
        nrsol=nrsol+cautB(v[i]+v[j],j);
    fprintf(f2,"%d",nrsol);
   fclose(f2);
   return 0;
}