Cod sursa(job #898514)

Utilizator Master011Dragos Martac Master011 Data 28 februarie 2013 10:33:32
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
FILE *in,*out;

int v[2050];

int caut(int x){
    int loc=0,pas=1<<11;
    while( pas != 0){
        if( v [ loc + pas ]!= 0   &&  v [ loc + pas]<x )
            loc+=pas;
        pas/=2;
    }
    if(x>=v[loc])
        return loc;
    return 0;
}

int main(){
    in=fopen("nrtri.in","r");
    out=fopen("nrtri.out","w");
    int n;
    fscanf(in,"%d",&n);
    int i;
    for(i=1;i<=n;i++)
        fscanf(in,"%d",&v[i]);
    sort(v+1,v+n+1);
    int j,pp,r=0;
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++){
            pp=caut(v[i]+v[j]);
            if(pp>j)
                r=r+(pp-j);
        }
    fprintf(out,"%d",r);
    fclose(in);
    fclose(out);
    return 0;
}