Cod sursa(job #2210018)

Utilizator MatteoalexandruMatteo Verzotti Matteoalexandru Data 5 iunie 2018 14:13:27
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("nrtri.in");
ofstream out ("nrtri.out");
int v[801];
int main()
{
    int n,i,j,st,dr,k,mij,s,cnt;
    cnt=0;
    in>>n;
    for(i=1;i<=n;i++)
        in>>v[i];
    sort(v+1,v+n+1);
    for(i=1;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            s=v[i]+v[j];
            st=j+1; dr=n;
            while(st<=dr)
            {
                mij=(st+dr)/2;
                k=v[mij];
                if(k<=s)
                {
                    cnt=cnt+(mij-j);
                    st=mij+1;
                }
                else
                    dr=mij-1;
            }
        }
    }
    out<<cnt;
    return 0;
}