Mai intai trebuie sa te autentifici.

Cod sursa(job #795840)

Utilizator Master011Dragos Martac Master011 Data 9 octombrie 2012 18:54:59
Problema Numarare triunghiuri Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<stdlib.h>
int v[800],n;

int cmp(const void *p, const void *q)
{
    int a = *(int*)p, b = *(int*)q;
    if(a<b) return -1;
    if(a>b) return 1;
    return 0;
}

int caut (int x){
    int i=0, j=n-1,m;
    while(i<j){
    m=(i+j+1)/2;
    if(x>=v[m])
        i=m;
    else
        j=m-1;
    }
    if(x>=v[i])
        return i;
    return 0;
}
int main(){
    FILE *fin,*fout;
    fin=fopen("nrtri.in","r");
    fout=fopen("nrtri.out","w");
    int r=0,i,j,g;
    fscanf(fin,"%d",&n);
    for(i=0;i<n;i++)
        fscanf(fin,"%d",&v[i]);
    qsort(v,n,sizeof(v[0]),cmp);
    for(i=0;i<n;i++)
        for(j=i+1;j<n;j++){
            g=caut(v[i]+v[j]);
            if(g>j)
            r=r+(g-j);
        }
    fprintf(fout,"%d",r);
    fclose(fin);
    fclose(fout);
    return 0;
}