Cod sursa(job #2074314)

Utilizator ParketPatrick Josephs Parket Data 24 noiembrie 2017 14:16:26
Problema Numarare triunghiuri Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>
#include <stdlib.h>
#define L 9
int v[801];
int main()
{
    int n;
    int i,j,k,pas;
    int nrtri = 0;
    FILE *f1 = fopen("nrtri.in","r"), *f2 = fopen("nrtri.out","w");
    fscanf(f1,"%d",&n);
    for(i=1;i<=n;i++)
        fscanf(f1,"%d",&v[i]);
    nrtri=0;
    for(i=1;i<=n-2;i++)
        for(j=i+1;j<=n-1;j++){
            k=1;
            pas=1<<L;
            while(pas!=0){
                if(k+pas<=n && v[i]+v[j]>=v[k+pas])
                    k+=pas;
                pas>>=1;
            }
            if(k > j && v[i]+v[j] >= v[k])
                nrtri+=k-j;
        }
    fprintf(f2,"%d",nrtri);
    return 0;
}