Cod sursa(job #674396)

Utilizator anca1243Popescu Anca anca1243 Data 6 februarie 2012 09:48:23
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
const int N=801;
int v[N],n;
/*int cautbin (int x)
{
    int i,pas=1<<16;
    for(i=0;pas!=0;pas>>=1)
    {
        if(i+pas<=n && v[i+pas]<=x)
        {
            i+=pas;
        }
    }
    return i;
}*/


int main()
{
    int i,j,rez=0,k;
    in>>n;
    for(i=1;i<=n;i++)
        in>>v[i];
    sort(&v[1],&v[n+1]);
    for(i=1;i<n-1;i++)
    {
        for(j=i+1,k=i+2;j<n;j++)
        {
            //k=cautbin(v[i]+v[j]);
            //if(k>j)
            //{
              //  rez+=k-j;
                //out<<v[i]<<" "<<v[j]<<" -> "<<k-j<<"\n";
            //}
            while(k<=n && v[k]<=v[i]+v[j])
            {
                k++;
            }
            rez+=k-j-1;
        }
    }
    out<<rez;
    return 0;
}