Cod sursa(job #2114957)

Utilizator lixiLixandru Andrei lixi Data 26 ianuarie 2018 09:30:57
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");

int a[801];
int cautbin(int st,int dr,int v)
{
    int mij;
    while(st<=dr)
    {mij=(st+dr)/2;
    if(a[mij]<=v)
        st=mij+1;
    else
        dr=mij-1;}
    mij=(st+dr)/2;
    while(a[mij]>v)
        mij--;
    return mij;
}
int main()
{int N,S,NR,SOL=0;
    f>>N;
    for(int i=1;i<=N;i++)
        f>>a[i];
    for(int i=1;i<=N-1;i++)
        for(int j=i+1;j<=N;j++)
        if(a[j]<a[i])
        swap(a[i],a[j]);
          for(int i=1;i<=N-1;i++)
        {for(int j=i+1;j<=N;j++)
        {
            S=a[i]+a[j];
            NR=cautbin(j+1,N,S);
         //   cout<<i<<' '<<j<<"->"<<NR-j<<endl;
            SOL+=NR-j;

        }
        }
g<<SOL;
    return 0;
}