Cod sursa(job #1733907)

Utilizator amaliarebAmalia Rebegea amaliareb Data 26 iulie 2016 01:57:14
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n,a,b,c,i,j,st,dr,m,sol,v[1000],x;

int main()
{
    f>>n;
    sol=0;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
    }
    for(a=1;a<=n-2;a++)
    for(b=a+1;b<n;b++)
    {
        x=a+b;
        if(v[b+1]<=x) c=b+1;
        else
        {
            st=b+1; dr=n;
            while(st<=dr)
            {
                m=st+(dr-st)/2;
                if(v[m]<=x && v[m+1]>x) st=dr+1, c=m;
                else if(v[m]<=x) st=m+1;
                else if(v[m]>x) dr=m-1;
            }
        }
        sol+=(c-b);
    }
    g<<sol<<'\n';
    return 0;
}