Cod sursa(job #1233865)

Utilizator grimmerFlorescu Luca grimmer Data 26 septembrie 2014 10:40:59
Problema Numarare triunghiuri Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <stdlib.h>

int v[801];

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