Cod sursa(job #2083907)

Utilizator onoflorinFlorin Onofrei onoflorin Data 8 decembrie 2017 12:12:37
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

const int L=10;
int v[801];
int main()
{
    FILE *fin, *fout;
    int n, a, i, r, c, pas, j;
    fin=fopen("nrtri.in", "r");
    fout=fopen("nrtri.out", "w");
    fscanf(fin, "%d\n", &n);
    for(i=0; i<n; i++)
        fscanf(fin, "%d ", &v[i]);
    sort(v, v+n);
    c=0;
    for(i=0; i<n; i++)
    {
        for(j=i+1; j<n; j++)
        {
            r=0;
            pas=1<<L;
            while(pas!=0)
            {
                if(r+pas<n && v[r+pas]<=v[i]+v[j])
                    r+=pas;
                pas/=2;
            }
            c += r - j;
        }
    }
    fprintf(fout, "%d", c);
    fclose(fin);
    fclose(fout);
    return 0;
}