Cod sursa(job #2072017)

Utilizator EmplopiStefan Nitu Emplopi Data 21 noiembrie 2017 12:11:42
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>

using namespace std;

int v[800];

int cautbin(int poz, int k, int n){
    int pas;
    pas=1<<9;
    while(pas!=0){
        if(v[poz+pas]<=k && poz+pas<n)
            poz+=pas;
        pas/=2;
    }

    return poz;
}

int main(){
    FILE *fin, *fout;
    int n, i, j, nr, rasp;
    fin=fopen("nrtri.in", "r");
    fout=fopen("nrtri.out", "w");
    fscanf(fin, "%d", &n);
    for(i=0;i<n;i++)
        fscanf(fin, "%d", &v[i]);
    sort(v, v+n);
    nr=0;
    for(i=0;i<n;i++)
        for(j=i+1;j<n;j++)
            nr+=cautbin(j, v[i]+v[j], n)-j;
    fprintf(fout, "%d", nr);
    fclose(fin);
    fclose(fout);

    return 0;
}