Cod sursa(job #2384952)

Utilizator RazvanucuPopan Razvan Calin Razvanucu Data 21 martie 2019 12:49:00
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#define NMax 800
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int k,n,i,j,s,d,m,nrtri;
bool ok=1;
int lung[NMax+1];
int main()
{
    f>>n;
    for(i=1; i<=n; i++)
        f>>lung[i];

    for(i=1;i<n;i++)
    {
        ok=1;
        for(j=1;j<n-i+1;j++)
         if(lung[j]>lung[j+1])
         swap(lung[j],lung[j+1]),ok=0;

        if(ok==1)
            i=n;
    }

   for(i=1;i<=n;i++)
    for(j=i+1;j<=n;j++)
   {
     s=j;
     d=n;
     k=j;
     while(s<=d)
     {
       m=s+(d-s)/2;

       if(lung[i]+lung[j]>=lung[m])
       k=m,s=m+1;

       else
        d=m-1;
    }
    nrtri+=k-j;
    }
    g<<nrtri;
    return 0;
}