Cod sursa(job #2077563)

Utilizator Mihnea_BranzeuMihnea Branzeu Mihnea_Branzeu Data 28 noiembrie 2017 11:23:39
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int v[801];
const int L=10;
int caut(int v[],int n, int x)
{
    int r,pas;
    r=0;
    pas=1<<L;
    while(pas!=0)
    {
        if(r+pas<=n && v[r+pas]<=x)
            r+=pas;
        pas/=2;
    }
    return r;
}
int main()
{
    int n,i,s=0,j,r;
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>v[i];
    sort(v+1,v+n+1);
    for(i=1; i<n; i++)
        for(j=i+1; j<=n; j++)
        {
            r=caut(v,n,v[i]+v[j]);
            if(r!=0)
                s+=r-j;
        }
    fout<<s;
    return 0;
}