Cod sursa(job #413396)

Utilizator SpiderManSimoiu Robert SpiderMan Data 8 martie 2010 14:41:05
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
using namespace std;

int N,v[801];

FILE *f=fopen("nrtri.in","r");
FILE *g=fopen("nrtri.out","w");

inline int max(int a,int b)
{
    if (a>b) return a;
    else return b;
}
void solve()
{
    int i,j,k,rez=0;
    fscanf(f,"%d\n",&N);
    for (i=1;i<=N;i++) fscanf(f,"%d",&v[i]);
    sort(v + 1,v + N + 1);
    for (i=1;i<=N-1;i++)
    {
        k=0;
        for (j=i + 1;j<=N;j++)
        {
            for (k = max (k-1, j + 1); k <= N && v[i] + v[j] >= v[k]; ++k);
            if ( v[i] + v[j]  >= v[j+1]) rez += k - j - 1;
        }
    }
    fprintf(g,"%d",rez);
}
int main()
{
    solve();
    return 0;
}