Cod sursa(job #1218109)

Utilizator VictorDumitrescuDumitrescu Victor VictorDumitrescu Data 9 august 2014 15:58:26
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>
int v[801],n;
int cautbin(int sum){
    int pas=1<<9;
    int poz=0;
    while(pas>0){
        if(poz+pas<=n && v[poz+pas]<=sum){
            poz+=pas;
        }
        pas/=2;
    }
    return poz;
}

FILE*f,*g;
int main()
{int i,j,aux,poz,mini;
    f=fopen("nrtri.in","r");
    g=fopen("nrtri.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    for(i=1;i<n;i++){
        mini=v[i];
        poz=i;
        for(j=i;j<=n;j++) {
            if(v[j]<mini) {
                mini=v[j];
                poz=j;
            }
        }
        aux=v[poz];
        v[poz]=v[i];
        v[i]=aux;
    }
    int rez=0;
    for(i=1;i<=n-2;i++){
        for(j=i+1;j<=n-1;j++){
            int k=cautbin(v[i]+v[j]-1);
            rez+=k-j;
        }
    }
    fprintf(g,"%d",rez);
    fclose(f);
    fclose(g);
    return 0;
}